2024年 6月 16日
2024年 6月 16日
C#如何处理运算符重载?
以相等==为例,C#默认会对重载相等==的方法转换成有两个类对象为参数的类静态op_Equality的方法(可通过ILDasm工具查看),这意味着你无法再定义一个相同的函数。如果定义,编译器将会报重。
2024年 6月 16日
为什么类静态类型构造器有时不会被调用?
以C#为例,如果代码仅仅是声明一个对象,而非初始化,对于编译器而言,并不会生成任何有效IL代码,连类静态类型构造器都不会被调用。只有在对象有用new初始化才会调用。
2024年 6月 16日
2024年 6月 15日
main方法可以是private私有?
一般意义而言,main方法是公开开放的,public类型是最常见。这对于Java而言没有问题,它的main函数必须是public. 主类需要的public吗?
2024年 6月 15日
可以控制结构体或类的字段偏移?
C#语言提供StructLayoutAttribute特性可以指示编译器重新布局结构体或类的字段偏移,这意味着如果一个结构体Point包含x/y两个字段,C#编译器可以优化顺序,将y排在x之前以优化性...
2024年 6月 15日
2024年 6月 15日
2024年 6月 14日
short变量赋值为32768, 实际为什么是-32768?
如上假设short类型为2字节。一般而言,编译器计算32768是按照当前值乘10加当前位计算十进制字面量。32768实际上是32767 + 1,即0x7FFF + 1 == 0x8000,即-3276...
2024年 6月 9日
.exe文件一定的原生目标代码?
不是。.NET平台CLR可以运行C#/VB.NET等语言编译的IL代码。Windows平台很特别,不像Java语言的字节码.class文件,CLR可以直接运行PE32(+)格式的.exe文件。其实本质...