理解C#的Reflection

C#中的反射有点偏门,它是一种可以访问、检测和修改程序本身状态或行为的一种能力.在程序的运行期间可以获取Assembly,Module,Class中的相关信息. 反射的优点包括: 提高了程序的灵活性和扩展性. 减少了程序的耦合程度. 方便开发人员的调试. 但是这也是有代价的,因为反射有点类似Java的中间层,它也是一种解释型的操作,因此对于高并发/高性能的程序上,并不推荐使用;并且反射会使得代码逻辑变得更加难以维护. using System; using System.Reflection; public class Info { private string qq; private string phone; private string address; public string QQ { get { return qq; } set { if … “理解C#的Reflection”

Read More

理解C#的Interface

这个C#中的接口在我看来,就像是对C++中纯虚函数的加强一样.接口只包含了成员的声明,成员可以包括属性、方法和事件.而成员的定义则由子类完成.接口只提供了子类应遵循的标准结构. 接口使得实现接口的类或结构在形式上保持一致. 描述一个接口: using system; //如果不加public修饰,则默认情况就是public public interface ITest { void TestMethod(); } class TestImp : ITest { void TestMethod() { Console.WriteLine(“this is imp for ITest”); } } 需要注意的是,接口中的成员不能用public、protected、internal、private等修饰符,因为接口的成员本身就具有public属性.

Read More

C# 的可空类型

C#这个类型很有特色,因为默认情况下,基本值类型是不能被赋空值的,而可空类型是定义一个基本值类型,使它可以被赋空值. 使用单问号?修饰的变量,表示可以对该变量进行null赋值, 而使用双问号??运算,则类似与三目运算符,对变量进行是否为Null的判断,如果变量空则返回后面的值,非空则返回变量. using System; namespace nulltest { class NullTest { static void Main(string[] args) { int? n1 = null, n2 = 123; int n3; n3 = n1 ?? 456; Console.WriteLine(n3); n3 = n2 ?? … “C# 的可空类型”

Read More

C#的简单记录

大致看了下C#,感觉就是C++的加强版,简直是一个娘胎出来的,就像是微软把C++拿来磨了磨,然后宣布这是比C++更锋利的语言,它叫C Sharp. C++有的功能和特性,它都有;C++没有的功能,它也有,比如GC,Delegates,Events Management,还有Lambda表达式(这个功能C++11已经支持了,但还没看,要抽几天总结下C++11的特性)等,反正总结来说比C++更加智能,方便已经安全. 有了C和C++的经验,入门C#应该是不费吹灰之力的,编程环境当然也是在Windows下的,装个Visual Studio 2013就啥都有了,C和C++的开发环境也自动安装,Visual Studio真的就是Niubility. 一个完整的C#程序包含了一下几个部分: 1. Namespace Declaration 2. Class Method 3. Class Attribute 4. Main Function 5. Statements & Expressions 写个Hello World: using System; namespace hello{ class HelloWorld { static … “C#的简单记录”

Read More