【[C#-3] partical修饰符】教程文章相关的互联网学习教程文章

[深入学习C#]输入输出安全性——可变类型形參列表的变化安全性【代码】

可变类型形參列表(variant-type-parameter-lists)  可变类型形參列表(variant-type-parameter-lists )仅仅能在接口和托付类型上出现。它与普通的type-parameter-lists的差异在于,它的每一个类型形參前面能够加上变化性批注:in和out。假设前面的变化性批注为out,则该类型形參成为协变类型形參;假设变化批注为in。则该类型形參成为逆变类型形參;假设不存在变化批注,则称该类型形參为固定类型形參。 比如:interface C<out x ...

C# 读取INI文件【代码】

废话不多说,直接上代码1:引入命名空间 System.Runtime.InteropServices System.IO 2:写一个类 iniHelperpublic class IniHelper {[DllImport("kernel32")]//返回0表示失败,非0为成功private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);[DllImport("kernel32")]//返回取得字符串缓冲区的长度private static extern long GetPrivateProfileString(string section,...

c# 使用栈实现有效的括号【代码】

需求:给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。代码如下:publicstaticbool IsValiad(string s){Stack<string> stack = new Stack<string>();//创建一个字符串的栈Dictionary<string, string> dic = new Dictionary<string, string>();dic.Add("(", ")");di...

c#之设计模式【代码】【图】

一、引言  经过这段时间对设计模式的学习,自己的感触还是很多的,因为我现在在写代码的时候,经常会想想这里能不能用什么设计模式来进行重构。所以,学完设计模式之后,感觉它会慢慢地影响到你写代码的思维方式。这里对设计模式做一个总结,一来可以对所有设计模式进行一个梳理,二来可以做一个索引来帮助大家收藏。  PS: 其实,很早之前我就看过所有的设计模式了,但是并没有写博客,但是不久就很快忘记了,也没有起到什么作...

使用委托实现c#,窗体与窗体之间的传值

主界面: Form1中的代码:namespace _06委托练习_窗体传值{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn1_Click(object sender, EventArgs e) { Form2 f2=new Form2(txt1.Text,DoSth);//传过去一个字符串和DoSth方法 f2.Show(); } //把字符串变量的值赋值给文本框 public ...

c# 正则表达式对网页进行有效内容抽取

搜索引擎中一个比较重要的环节就是从网页中抽取出有效内容。简单来说,就是吧HTML文本中的HTML标记去掉,留下我们用IE等浏览器打开HTML文档看到的部分(我们这里不考虑图片). 将HTML文本中的标记分为:注释,script ,style,以及其他标记分别去掉: 1.去注释,正则为: output = Regex.Replace(input, @"<!--[^-]*-->", string.Empty, RegexOptions.IgnoreCase); 2.去script,正则为: ouput = Regex.Replace(input, @"<script[^>]*?>.*?...

C#中的那些全局异常捕获

1.WPF全局捕获异常 public partial class App : Application { public App() { // 在异常由应用程序引发但未进行处理时发生。主要指的是UI线程。 this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException);// 当某个异常未被捕获时出现。主要指的是非UI线程 AppDomain.CurrentDomain.Unhan...

用C#创建一个混合型类

.net 4.0添加了dynamic关键字。通过声明dynamic变量,我们可以在C#这个静态语言中使用一下动态语言的特性。微软添加dynamic关键字,主要是为了使在C#中对COM编程更加简化。对于我这个2003年才开始学编程的人来说COM就和汇编一样,只有听说过的份。那么dynamic还有什么其他的用途呢?最近有点时间研究了一下,感觉很好玩,很Cool。作为学习成果,下面是一个通过IDynamicMetaObjectProvider实现的一个可以混合动态Property和静态Prop...

C#GUID【图】

原文:C#GUIDGUID表示全局统一标识,用于产生不重复的数据。下图是使用GUID时系统给出的提示,ToString()的重载部分说NULL和空字符串与"D"等价,这里并不等价,原因应该是GUID的生成与通过以太网卡地址、纳秒级时间、芯片ID码和许多可能的数据有关,所以这里的数据并不一样。测试:由图可知,NULL和“D”生成的GUID以“-”隔开。“N”生成的GUID没有间隔。“B”则以“-”并且全部数据有大括号{}包住。“P”则以“-“隔开,并且全部数...

C#我们在使用静态字段的时候要注意什么?【图】

工作的时候遇到静态字段书写,优先考虑下面几个方面(意识):1. 如果是多次使用,要注意对静态字段的重新初始化,防止之前的状态对新的过程的影响或保存之前状态用于之后过程;2. 注意静态字段对内存的影响(静态字段所保存的数据会一直驻留在内存中,存在于整个程序的生命周期,如果不显示的释放 -- 设置为null等等);--> 不要用静态字段保存一些临时的、大量的数据3. 注意静态字段的线程安全问题(异步调用修改静态字段)4. 注...

在C#中子线程如何操作主线程中窗体上控件【代码】【图】

在C#中子线程如何操作主线程中窗体上控件 在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。 要实现该功能,基本思路如下: 把想对另一线程中的控件实施的操作放到一个函...

C# 获取当前打开的文件夹2

这一个则比较投机,准确性不能保证,可以参考: 这个类获取当前进程的句柄: public class MyProcess { private bool haveMainWindow = false; private IntPtr mainWindowHandle = IntPtr.Zero; private int processId = 0; private delegate bool EnumThreadWindowsCallback(IntPtr hWnd, IntPtr lParam); public IntPtr GetMainWindowHandle(int processId) { if (!t...

C# 拼音通用类【代码】【图】

因为项目需求,查找资料并编写了这个拼音通用类。在博客园分享:)其中的多音字首拼,感觉还是非常实用的。可识别中文、英文和符号 1using System;2using System.Collections.Generic;3using System.Collections.ObjectModel;4using System.Linq;5using System.Text;6using Microsoft.International.Converters.PinYinConverter;7 8namespace MyConsoleApp9{10publicsealedclass PinYin11 {12private PinYin() { }13 14///<su...

C# Winfrom 进程&多线程【代码】

进程:首先需要引用命名空间:using systemDiagnostics;最简单的打开进程的方法,进程名并不是汉字:Process.start("calc");//clac是计算器的进程,使用这个方法就可以打开计算器了 Process.start("notepad");//可以同时打开多个进程,notepad是记事本 以浏览的方式打开一个进程://首先把一个进程的路径输出到TextBox里; //返回一个bool类型 DialogResult dr = openFiledialog1.ShowDialog(); //判断if(dr==Diagloresult.OK) {te...

C# 类名获取,反射泛型对象获取值

string InsertString<T>(T t)   {     var type = typeof(T); //反射对象     var A = type.GetProperties(); //获取对象属性     var insertString = "insert into " + t.GetType().Name + " values ("; //t.GetType().Name 获取类名     foreach (var b in A) {       insertString += "@" + b.Name...