Warning: fopen(/www/wwwroot/www.wendadaohang.com/data/md5_content_title/21/21196bc15054dd76c37c9e5ba291e7d2.txt): failed to open stream: No space left on device in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2468

Warning: flock() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2469

Warning: fclose() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2475
怎么学习C#语言 - www问答网

怎么学习C#语言

怎么才能学习好C#呢?

第1个回答  2019-05-06
做个笔记.
先说数据类型,
任何系统都会涉及到数据存储和读取,
这必然有对应的数据类型.
这里说的数据类型是指程序设计语言的数据类型.
C#
语言里,
数据类型可分为两类:
1.
Value
Types
值类型
2.
References
Types
引用类型.
注意,
MSDN里面说的不是类类型,
而是引用类型.
这个一定要分清,
里面是有区别的.
这一节先说值类型.
值类型往下分,
又分为两类:
1.
Structs
结构类型
2.
Enum
枚举类型
结构类型又可以分为:
1.
Numeric
Type
数值类型
2.
bool
Type
布尔类型
3.
User
Defined
Struct
用户定义结构类型
数值类型又分为:
1.
Integral
Types
整数类型
2.
Floating-point
types
浮点类型
3.
decimal
十进制类型(带小数)
树型结构:
Value
Types
Enum
Structs
Numeric
types
Integral
types
Floating-point
types
Decimal
bool
User
defined
structs
那么前面的可以总结一下:
c#语言的数据类型基本包含三方面:
Structs,
Enum,
References
types
如果别人问,
什么是struct?和class
有什么区别?应该说struct
是值类型.
赋值时直接拷贝变量本身的值.
当然也可以补充说,
struct也可以实现接口,
包括成员函数.
前面的两条,
回答什么struct的问题应该差不多了.
然而这其实没什么意义.
至少在实际上,
还看不到什么意义.
所有的值类型变量在使用前必须被初始化,
否则编译器将报错.
初始化可以在声明时直接用文字值(或者叫字面值,
就是用文字直接表达出的内容)初始化:
int
i
=
0;
也可以用new
来进行进行初始化,
这将调用缺省的构造函数来赋于他缺省值.:
int
j
=
new
int();
虽然值类型(大部分是struct)
可以用new来初始化,
而new是来调用构造函数并赋缺省值的,
但是任何struct是不能显式定义个缺省构造函数(不带参数,
同struct名的)的.
否则将报错.
因为所有值类型的成员都是存在公共缺省构造函数的.
(这是MSDN的原话,
可是这段话似乎有点不严谨).
但是程序员可以定义个带参数的构造函数,
而且参数必须是全部对应每个成员的.
就是有几个成员,
就要有与之对应的参数.
关于前面我说的不严谨,
是这样的:
在struct类型中,
可以加入一个对引用类型,
比如一个class类型的引用.
象这样的代码:
class
Program
{
static
void
Main(string[]
args)
{
abc
a1
=
new
abc();
a1.p
=
new
Program();
abc
a2
=
a1;
}
}
struct
abc
{
public
int
i;
public
Program
p;
}
在上面的代码中,
你说p是个什么样的类型呢?
因为struct都是值类型,
所以必须其成员都是值类型,
那么p也应该是个值类型.
然后在MS的MSDN的c#文档里,
却没有说引用本身是个值类型.
至少我目前还没看到这样的话.
不知道谁能指正我这个错误.
如果我错了,
请告诉我.
相似回答
大家正在搜