c# 基础知识、容易弄混淆的细节记录(二)

  1. 通常一个整数默认存储的是整数型int,即32位,如果想特殊指明,要显示指定。 比如 uint i =1234U ; long i=1234L; ulong i = 1234UL;否则编译器会默认1234属于int。

  2. 通常一个小数默认存储的是浮点型double,即64位双精度,如果想特殊指明,要显示指定。 比如 folat f =1234.567F; float型是32位。

  3. c# 7 提供了二进制值字面量表示, 以0b开头,byte b=0b1111_1110

  4. 在c或者c++中,预处理指令非常重要,c#也提供了一些预处理指令,它们的使用不太频繁,因为c#提供了其他机制来实现许多c++指令的功能,如定制特性。还要注意,并没有一个像c++那样的预处理器,所谓的预处理器实际是由c#编译器处理的。

  5. 较小的数据类型使用结构可以提高性能、结构的另一个优点与本机代码互操作、结构体的布局可以与本机数据类型相同。但除非特殊说明,用于类的代码也适用于结构。

  6. readonly只读的修饰符,只能在构造函数中分配值。它与const不同,后者是编译期用常量替换变量,而readonly是运行期构造函数指定。另外const属于类,默认是静态的,readonly既可以是静态的,也可以是实例的。如果是静态的,就要在静态构造函数中分配值,如果是实例的,就在实例构造函数中分配值。

  7. 属性是字段的改进、为了区分,微软约定用下划线作为字段的前缀。如果属性不含任何逻辑,可以使用自动属性,如果包含逻辑,那只能使用传统属性,即包括私有字段和公有属性。同时,属性也可以有访问修饰符public或者private,这有助于控制属性的设置方式。只读属性可以使用属性初始化器,也可以显式的在构造函数中初始化。

  8. 可见c#至少提供了3种方式来表达只读,const、readonly、只读属性,注意它们的区别。严格说还有枚举,因为枚举是常量的集合。

  9. 方法重载看的是签名,即方法名相同,但参数的个数或者数据类型不同,不看返回值。

10.方法返回一个值很简单,如果方法要返回多个值。有3种方法,一种是声明复杂的数据,比如数组、结构或者类,把应该返回的所有信息都定义成成员; 第二种是使用元祖类型;第三种是使用out关键字。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值