C#学习(一)

C#的许多方面与Java相似。下面简述类成员的的初始化及delegate的使用。

C#中函数不能出现在类外,仅有如enum、delegate定义可以在类外。

static类:内部定义static字段和static方法,编译器会自动初始化。如:

public static class StaticClass
{
        public static int _num;
        public static string _str;
        public static void Print(string str )   
        {Console.WriteLine("You are pretty!");}  
}
//_num、_str均被初始化,分别为0、“”

普通类:内部定义的字段均会被编译器自动初始化。而方法中的局部变量不会被初始化,需要用户赋值

public class NormalClass
{
      public void Fun(){int i;}   
}    
//编译会报错,由于局部变量未被赋值

static类的调用不需要初始化,而是可以直接调用该类中的字段。但普通类中的字段调用需要先初始化。

static类中的字段和方法均为static形式,不可以有其他。

delegate委托

委托可以很方便的用在线程的调用方面。委托的形式可以任意选择,基本形式如下:

public delegate void Fun(string str);

类中的方法也需要与delegate形式相同,那么该方法就可以被委托了。

        public class Del
        {
            public static int numStatic;
            public int numDynamic;
            public Del() { }
            public void print(string str)
            {
                int n;
                Console.WriteLine("What a pretty girl you are, {0}!", str);
                if (!n.Equals(0))
                    Console.WriteLine("Method variable is not 0");
            }
        }


            Del del = new Del();
            Fun fun = new Fun(del.print);
            fun("Huang Qi");
//得到结果为What a pretty girl you are, Huang Qi!
原文地址:https://www.cnblogs.com/2Bthebest1/p/8528450.html