摘要:
一.动态创建对象构造函数无参数构造对象class MyClass { privatestring _name; publicstring Name { get { return _name; } set { _name = value; } } } class Program { staticvoid Main(string[] args) { Assembly myass = Assembly.GetExecutingAssembly();//获取程序集 MyClass my = myass.CreateInstance("ConsoleApplication7.MyClass&q 阅读全文
摘要:
[Obsolete("过时的",false)]//特性,标明XXX已过时 static void sendMessage() { Console.WriteLine("null"); } static void sendMessage(string str) { Console.WriteLine(str); } static void Main(string[] args) { sendMessage(); //编译时,这里会有一个警告 sendMessage("hhaha"); Console.Read(); }以上,静态方法se 阅读全文
摘要:
泛型利用“参数化类型”将类型抽象,实现更为灵活的复用,类型安全,更高的效率,更强的约束。C#泛型由CLR运行时支持,区别于C++的编译时模板机制。C#动态泛型能力能够避免C++静态模板产生的代码膨胀问题。因为C#实例化的类型相同,JIT编译器会重复使用该类型。C#泛型可以应用强大的反射技术。C#泛型实现对类型的“显示约束”,不比C++模板基于签名的隐式约束所具有的的灵活性。一个简单实现的泛型排序如下:由于是排序,此处需要确定能比较,所以有where T : IComparable的约束。publicclassMyClass where T : IComparable { publicvoid 阅读全文
摘要:
XML文件的简单增改删,每一个都可以单独拿出来使用。新创建XML文件, Oberon's Legacy Corets, Eva 5.95 实现如下://插入节点 protected void btn_Add_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"E:\ruxiaomeng\Simple\C++\CLR\stlclr\StlClr Sample\XMLTest\bookstore.xml"); XmlNode root = doc.Sele 阅读全文
摘要:
Linq to SQL 简单的增删改操作。新建数据库表tbGuestBook.结构如下:新建web项目,完成相应的dbml文件。留言页面布局如下 姓名 留言 - 管理员回复: 后台代码实现:DataGuestBookDataContext content =new DataGuestBookDataContext("Data Source=10.1.0.1;Initial Catalog=app;Persist Security Info=True;User ID=sa;Password=XXX"); protected void Page... 阅读全文
摘要:
//-----匹配单字符形式------------ //"."匹配任意单个字符,包括其本身,可以连续使用 //[dt]中括号为特殊标记,匹配中括号内的任意一个。可以区间方式填写[0-9][0-9a-z]. //[^abc]反义字符组,匹配中括号外的任意一个字符![^A-Z] //当匹配元字符(如:.[])等,需要转义“\” //匹配数字类型“\d,所有单个数字,与[0-9]相同”; //所有非数字,“\D,与[^0-9]相同”。 //“\w,所有单个大小写字母、数字、下划线,与 [a-zA-Z0-9_]相同” //“\W,所有单个非大小写字母、非数字、非下划线,与 [^a 阅读全文
摘要:
可空类型:可空类型可以表示基础类型的所有值和null。可空类型的基础类型必须为值类型,不能是引用类型。定义方式:System.Nullable val; T? val;static void Main(string[] args) { int? a=null; int y = a ?? -4;//赋值,如果a为NULL,则y=??后面的值。 Console.WriteLine(a.GetValueOrDefault()); Console.WriteLine(y); System.Nullable b = 9; Console.WriteLine(b); System.Nullable c = 阅读全文
摘要:
取消预编译头:默认情况下,创建新项目时,会将它们设置为使用预编译头。若要禁用预编译头,请在“项目”菜单中选择“属性”。展开“配置属性”节点,然后展开“C/C++”节点,并选择“预编译头”。从“创建/使用预编译头”旁边的下拉列表中,选择“不使用预编译头”。以下1在CLR上运行的代码,2和3为本地C++代码!1. 创建和使用托管程序集。添加vc++ CLR类库项目,取消预编译头,CLRAdd.h和CLRAdd.cpp。CLRAdd.h 代码如下:#pragma onceusing namespace System;namespace CLRAdd{ public ref class Math { 阅读全文
摘要:
copy:Copy函数原型:标头: OutputIterator copy(InputIterator begin,InputIterator end,outputIterator Result)返回的结果为:OutputIterator容器的Result到Result+(end-begin)位置被InputIterator容器begin到end位置的数据覆盖。[begin,end)#include #include #include using namespace std;void main(){ vector vec1,vec2; for(int i=0;i::iterator ite.. 阅读全文
摘要:
扩展方法:静态类包含的方法必须都是静态方法。扩展方法允许我们在不改变原有类的情况下,扩展现有类型中的实例方法,是一种编译时的技术。publicstaticclassMyClass //必须是静态类{publicstaticvoid getdata(thisstring s) //静态方法,this不可少{Console.WriteLine(s.Length);}}classProgram{staticvoid Main(string[] args){string str ="rxm";str.getdata(); //实例方法的调用!Console.Read();}}对象与 阅读全文