
C#
好吧我随便改的
抓住最后的机会~
展开
-
C#类静态构造函数
最近有做到面试题如下:class A{ private static int g_n=1; static A() { g_n++; } public A() { g_n++; } }public static int main(){ A a1 =转载 2015-02-01 16:02:05 · 491 阅读 · 0 评论 -
工作线程操作UI线程元素的方法
C#中,工作线程无法直接在线程函数中操作UI主线程中的UI对象,必须通过线程切换到UI线程去执行相应的操作界面元素的代码。主要有两种方法可以在工作线程中完成UI界面元素的操作:1.Control.Invoke2.SynchronizationContext下面的例子同时使用了这两个方法做演示(SynchronizationContext也可以使用Send来调用UI线程中的方法委托)原创 2017-04-26 15:20:09 · 476 阅读 · 0 评论 -
C#显式实现接口函数
如果一个类实现了一个接口,他可以选择显示实现这个接口如果显示实现了接口的话,要调用接口的方法,就必须将类型转换为接口去调用,如果要使用类的实例去调用,就必须为类实现该接口函数。例如:interface IShowMessage{ void ShowMsg(string msg);} class Test : ShowMessage{ IShowM原创 2017-03-27 11:12:12 · 1692 阅读 · 0 评论 -
IDispose
需要为本类提供DISPOSE函数的情况:1.从IDispose继承2.有成员对象实现了IDispose3.本类有包装本机资源,需要在回收对象堆内存前进行释放转载 2017-04-03 12:22:26 · 471 阅读 · 0 评论 -
IENUMERABLE接口实现:
IENUMERABLE接口实现:class Program { static void Main(string[] args) { WareHouse house = new WareHouse(); house.Add("1"); house.Ad原创 2017-03-16 15:32:56 · 571 阅读 · 0 评论 -
运行期CLR校验数组元素赋值类型安全性
C#的数组是支持数组协变性的,即允许将子类的数组赋值给父类的数组变量。这样的功能可能在编译器产生类型不安全的问题,引发类型异常,因为CLR在运行期会根据数组变量在对上找到数据元素,再找到其类型对象,获取到数据的实际元素类型,如果实际元素类型和赋值的变量的类型不同且不是派生关系,那么会造成运行期CLR类型不匹配异常class Program{ public static voi转载 2017-03-27 16:36:14 · 482 阅读 · 0 评论 -
C#中应用定制特性来进行运行期判断
定制特性本质上还是一个类,只不过CLR规定定制特性必须继承自Attribute类定制特性可以应用在类,属性,方法等对象(几乎是元数据中的所有成员)上面当应用定制特性的时候,是生成了特性的一个实例(按照应用时在特性后面的括号内戴上的命名参数和定位参数),并且将应用的对象和特性关联在一起,这个是体现在文件的元数据中的(编译器会将特性的实例序列化到元数据中) 下面是一个例子,首先定义一个原创 2017-03-20 14:58:59 · 1044 阅读 · 0 评论 -
C#值类型构造函数注意事项
C#语言相比其他支持CLR的语言来说,对于值类型的构造有个特殊的地方,即不允许值类型有无参数的构造函数所以当一个值类型没有提供任何构造函数的时候,是不能够对字段在定义中进行初始化,如下:public struct Point{ public int x = 0; //编译报错 public int y = 0; //编译报错}因为对于成员变量申明原创 2017-03-05 15:30:17 · 864 阅读 · 0 评论 -
C#属性和索引器
属性:C#中类的属性是为了给类中的成员变量提供访问保护的,防止不正确的访问造成程序异常。通常我们都是将成员变量设置为保护或者私有的,然后使用属性来给成员变量提供访问接口即class A { private int interval = 0; public int Interval { get { return this.inter转载 2015-06-14 22:37:36 · 970 阅读 · 0 评论 -
c#DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取转载 2015-06-15 22:36:12 · 795 阅读 · 0 评论 -
c#连接SQLSERVER命名实例的方法
在今天看到一个帖子,问怎么连接命名实例的SQLSERVER数据库,结果发现了有两个答案一般连接SQLSERVER数据库需要知道那些条件呢1.服务器IP2.数据库实例名(特别是命名实例的数据库实例,使用默认实例的可以忽略)3.数据库名4.用户5.密码然后,看到C#对于命名实例的SQLSERVER数据库的连接字符串有两种:1.server=192.168.252原创 2015-06-15 22:16:50 · 3146 阅读 · 0 评论 -
C#接口
C#接口提供了一个公共方法的集合包,继承该接口的类需要实现接口中的方法;接口中只有申明,没有实现,这点很重要接口中可以包含4种成员1.函数2.属性3.索引器4.事件这里就要提到上面说的很重要的地方了,也就是,这四种成员都不能有实现,只能有申明如果你写出下面的这样的接口申明,会被编译器鄙视的interface Animal{ int nWeight转载 2015-06-14 23:06:12 · 419 阅读 · 0 评论 -
C#写入错误信息到WINDOWS日志查看器中的应用程序日志
有时,有些错误信息无法写入程序本地的日志文件,例如写入本地日志文件的函数调用失败了,这种情况下,就需要将这次错误信息,记录到windows系统中,在windows的事件查看器中找到应用程序中的记录的日志来排查。C#提供了EventLog类来处理与Windows事件日志交互的功能代码如下:using System.Diagnostics; EventLog errLog = new原创 2015-04-11 16:28:09 · 3456 阅读 · 0 评论 -
C#通过WEBREQUEST调用WEBSERVICE
1.首先通过WSDL说明创建SOAP消息 XML2.创建WEBREQUEST,将XML加入WEBREQUEST的RequestStream3.通过WEBREQUEST的Write函数发起请求4.通过WEBREQUEST的GetResponse获取响应WebResponse主要代码如下:public static string GetSOAPReSource(string url原创 2015-03-22 11:44:30 · 1559 阅读 · 0 评论 -
C#发送HTTP POST请求和响应POST请求
发送请求:private void button1_Click(object sender, EventArgs e) { string sUrl = txtUrl.Text; string sParam = postParam.Text; HttpWebRequest req = WebReque转载 2015-02-13 14:17:54 · 6244 阅读 · 0 评论 -
C#判断节点下是否还有子节点的方法
由于C#的XMLNODE类提供的ChildNodes以及HasChildNode属性都没法判断这种情况123即有InnerText的情况,无论是ChildNodes.count还是HasChildNode都无法判断出来,因此只有在判断了HasChildNode以后继续判断ChildNodes[0].Name=="#text"来判断,即XmlNode node;if(node.H原创 2015-02-27 18:22:35 · 4519 阅读 · 0 评论 -
C#静态构造函数
最近有看到题目如下:class A{ private static int g_n=1; static A() { g_n++; } public A() { g_n++; } } public static int main(){ A a1 = new ...原创 2018-12-03 11:06:49 · 960 阅读 · 0 评论