留在屏幕上的字

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  类和结构都是创建对象的模版,类定义了类的每个对象可以包含什么数据功能。

  结构和类的区别在于他们在内存中的存储方式,访问方式。类是存储在堆上的引用类型,而结构是存储在栈上的值类型,当然结构也不能继承。在语法上他两个很相似。

  参数可以通过引用或值传递给方法。在变量通过引用传递给方法时,被调用的方法得到的就是这个变量,所以方法内部对变量进行的任何改变在方法退出后仍旧有效。但是如果变量通过直传递给方法的时候,被调用的方法得到的就是这个变量的副本,所以方法内部对变量进行的任何改变在方法退出后就没有效了。需要注意的是在C#里面所有参数在默认的情况下都是通过值来传递的。可能你会说如果是引用类型的变量那也是通过值来传递的吗。答案当然是否定的。我们都知道引用类型的变量只包含对象的引用,将要复制的正好是这个引用,不是对象本身,所以对对象的修改会保存。但是我们想将值参数通过引用传递给方法怎么办。当然有办法 这时我们就可以用ref 关键字。我们需要注意的是无论是按值传递还是引用传递,任何变量都必须初始化。但是你要是不想初始化改怎么办。我们可以让别人代替我们初始化。这时就用out关键字。我们都知道,参数一般需要按顺序传递给方法,要是顺序错了他就会报错。但是如果你不想这样做呢,怎么办。我们就可以搞一个命名参数,就是在调用方法的时候在方法的括号里面写上参数的名称然后在:以后写参数即可,这样我们就搞定了。我们都知道重载这个概念,就是同一个方法名,参数类型或个数不同。那除了重载还有没有其他办法实现相同的效果呢。答案是肯定的,我们可以用可选参数。但是我们必须为可选的参数提供一个默认值,而且这个可选参数必须定义的是最后一个参数。显然不如重载好用。

  属性在客户端代码看来就是一个字段。属性是可以有访问修饰符的。但get访问器是公有的,set可以私有和受保护。

  构造函数的重载遵循与其他方法相同的规则。如果构造函数带了参数编译器就不会提供默认的构造函数。除非你没有定义。静态构造函数没有访问修饰符。静态构造函数不能带参数,一个类里面只能有一个静态构造函数。无参的构造函数和静态构造函数可以在同一个类中同时定义。

namespace canshudechuandi
{
    class Program
    {
        //static void SomeFunction(int[] ints,int i)
        //{
        //    ints[0] = 100;
        //    i = 100;
        //}
        //static void SomeFunction(int[] ints, ref int i)
        //{
        //    ints[0] = 100;
        //    i = 100;
        //}
        static void SomeFunction(out int i)
       {
        
           i = 100;
        }
        static void Main(string[] args)
        {
            //int i = 0;
            //int[] ints ={ 0, 1, 2, 4, 8 };
            //Console.WriteLine("i=" + i);
            //Console.WriteLine("ints[0]=" + ints[0]);
            //Console.WriteLine("没有调用SomeFunction方法之前");

            //SomeFunction(ints, ref i);
            //Console.WriteLine("i=" + i);
            //Console.WriteLine("ints[0]=" + ints[0]);
            //Console.WriteLine("没有调用SomeFunction方法之后");
            //Console.ReadKey();
            int i;
            SomeFunction(out i);
            Console.WriteLine(i);
            Console.ReadKey();

        }
    }
}

posted on 2012-09-11 22:27  简单点,再简单点  阅读(777)  评论(0编辑  收藏  举报
                                                                              多交流,多思考