C#笔记

1.C#中的静态函数不作为普通实例的成员方法访问,如果调用静态函数时,必须用类名+静态函数名的形式。

2.重写GetHashCode()函数,一般用各个成员变量的哈希码进行^ xor 来得到新的哈希值。

3.只有在父类中被标记为virtual,abstract,override的方法才可以被重载,其他的都看不可以。

4.关于访问级别,创建的类默认是Internal的,类中的方法和变量默认是private的。sealed 修饰类时表示不可被继承,成员不用第三条的修饰时不可被override。

5.一个文件中可以定义任意多个public的类。

6.不兼容值类型转换时,通过System.Convert类进行。也可以用xxx.Parse(),xxx.TryParse。Convert类执行时,内部调用的是xxx.Parse。注意parse的参数只能是字符串类型。

7.Switch case中如果有内容,则必须使用break,或者goto。如果内容为空,可以不用break;

如果想执行C语言默认执行下一个case的情况,要么case中内容是空,要么用 goto case xx;来代替break;

8.C#中没有typedef关键字,在定义enum,struct时也不需要再使用typedef

9.值类型的函数参数是如法带出的。可以用out来表示该参数是输出的,ref表示引用。out的变量不需要在外部初始化,ref的参数需要在外部初始化。out是只出不进的,ref是有出有进的。如果是引用类型的参数则不需要用out和ref

10.如果要用可变参数,可以用params来修饰,被修饰的参数必须是数组。一个函数中只能有一个params的参数,且必须放在最后。

11.属性

        private string _name = "helo";
        public string Name
        {
            set { _name = value; }
            get { return _name; }
        }

12.用户登陆时用户名和密码都是一次输入到处使用的,此时可以考虑用静态类的静态属性来保存。

13.析构函数是跟C++一样,只需要在类名前面加~即可

14.在构造函数调用另一个构造函数来实现时:student(string name, int age):this(name) 该实例中调用两个参数构造时会先调用一个参数的构造,这样就不需要再写一次name的操作啦。

15.1个解决方案中的不同项目中如果要相互调用,只需要在项目中的引用中添加需要引用的项目,然后using 想要的命名空间就可以访问其共有成员啦。

16.通过using包含多个命名空间并不会导致负担,在编译为IL时会删除不用的信息,另外,C#是解释执行语言,不会被执行到的程序也不会影响效率。

17.StringBuilder非线程安全,如果是多线程则用StringBuffer。string.Join(seperator, string[]).

18.如果父类有无参构造函数,则子类在构造时默认调用父类无参构造函数。如果父类没有无参构造,则必须在子类构造函数用 sub():base(xxx) 方法对父类有参构造函数进行显示初始化。自己调用自己的构造函数用constructor:this(xxx),注意这里的xxx是指前面sub,和constructor中的其中一个参数名。如下代码由于父类中已经实现了this.name = name,且父类没有默认的无参数构造函数,所以,子类中的构造函数必须要对父类有参构造函数显示初始化。并且不需要在构造函数中在写一次this.name = name.

    class Person
    {
        public string name;
        public Person(string name)
        {
            this.name = name;
        }
    }

    class Student : Person
    {
        public Student(string name) : base(name)
        {
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值