第2章 c#基础。
2.1引言。
c#是一种面向对象的语言,需要懂得类、对象、接口、继承的含义。
2.2.3详细信息。
在c#中使用using system指令的原因是下面要使用一个库类 system指令允许把这个类简写为console(类似于system命名空间的其它类)。标准的system 命名空间包含了最常用。net类型。
我们用c#做的所有工作者依赖于。net基类。在本例中,我们使用了system命名空间console类,以写入控制窗口。
c#没有输入输出的内置关键字,完全依赖于。net类。
接着,声明一个类myfirstclass。c#中的**都必须包含在一个类中,类的声明包括class关键字,其后是类名和一对花括号。与类相关的所有**都包含在花括号内。
下面声明方法main()。每个c#可执行文件(例如控制台应用程序、windows应用程序和windows服务)都必须有一个入口点——main方法。
static void main()
该方法要么没有返回值void,要么返回一个整数()。
注意c#的方法定义如下:
修饰符(modi)用于指定用户所定义方法的某些特性,例如可以在什么地方调用该方法。修饰符public表示可以任何地方访问该方法,所在可以在类的外部调用它。修饰符static表示方法不能在类的实例上执行,因此不必实例化再调用。
因为我们创建的是一个可执行文件 ,而不是类库。把返回类型设置为void,在本例中,不包含任何参数。
在本例中, 我们只调用了类的writeline()方法,把一行文本写到控制台上。writeline()是一个静态方法,在调用之前不需要实例化console对象。
然后调用return退出该方法(因为这是main方法,所以也退出了应用程序)。在方法的首部指定void,因此没有返回值。
c#有两个方法可确保变量在使用前进行了初始化:
变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是0.
方法的局部变量必须在**中显示初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可以的路径,如果检测到局部变量在初始化之前就使用了它的值,就会产生错误。
static int main()
定义main(),使之返回一个int类型的数据,而不是void。定义void类型的数据,代表返回来的必须是空值,最后不能有return语句。
something objsomething,这行**会为something对象创建一个引用,但这个引用还没有指向任何对象。对该变量调用方法或属性会导致错误。
在c#中实例化一个引用对象需要使用new关键字。创建一个引用,使用new关键字把该引用引用指向存储在堆上的一个对象。
objsomething = new something();
type表示类型的声明,包括类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。
蓝色的表示局部变量。
class program
变量必须初始化,否则编译器就没有推断变量类型的依据。
变量的作用域:
只要类在某个作用域内,其字段也在该作用域内。
局部变量存在于表示声明该变量的语句或方法结束的封闭花括号之前的作用域内。
在for、while或类似语句中声明的局部变量存在于该循环体内。
注意:同名的局部变量不能在同一作用域内声明两次。
2、在某些情况下,可以区分名称相同(尽管其完全限定的名称不同),作用域相同的两个标识符。些时编译器允许声明两个变量。原因是c#在变量之间有一个基本的区分,它把声明为类型级的变量看成是字段,而把方法中声明的变量看成是局部变量。
如何引用类型变量?可以使用语法在对象的外部引用类的字段或结构。在上面的例子中,我们访问静态方法中的一个静态字段,所以不能引用类的实例,只能使用类的本身。
public static void main()
如果要访问一个实例字段(该字段属于类的一个特定实例),就需要使用this关键字。
3.常量就是其值在使用的过程中不会发生变化的变量。在声明和初始化变量时, 在变量的前面加上关键字const,就可以把该变量指定为一个常量。
常量具有以下特征:
常量必须在声明时初始化,指定了其值后,就不能再修改了。
常量的值必须在编译时用于计算。因此,不能用从一个变量中提取的值来初始化常量。如果需要这么做,应使用只读字段。
常量总是静态的。但注意的是,不必在常量声明中包含修饰符static。
2.4预定义类型。
c#对其可用的类型及其定义有严格的描述。
c#数据类型:值类型和引用类型。
从概念上看,其区别是值类型直接存储其值,而引用类型直接存储其引用。这两种类型存储在不同的地方:值类型存储在堆栈中,而引用类型存储在托管堆上。
这两个类型不同,存储位置会有不同的影响。int i=20值类型 i = j 引用类型。
2.5定义一个类vector,vector是一个引用类型,它有一个int类型的成员变量value。在执行这段**后,只有一个vector对象。
x和y都指向包含该对象的内存位置。因为x和y都是引用类型的变量,声明这两个变量只保留了一个引用——而不会实例化给指定类型的对象。
要创建对象,就必须使用int关键字。因为x和y都引用同一个对象,所以对x的修改会影响y.
在c#中,基本数据类型bool和long都是值类型。如果声明一个bool变量,并给它赋予另一个bool变量的值,在内存中就会有两个bool值。修改第一个bool变量的值,第二个bool变量值也不会改变。
大多数我复杂的c#数据类型,包括我们声明的类都是引用类型。它们分配在堆中,其生命周期可以跨多个函数调用,可以通过一个或几个别名来引用。
把基本类型(如int和bool)规定为值类型,而把包含许多字段的较大型(通常在有类的情况下)规定为引用类型。如果要把自己的类型定义为值类型,就应把它声明一个结构。
2.6c#认可的基本预定义类型并没有内置于c#语言中, 而是内置于。netframework中。
例如,在c#中声明一个int类型的数据,声明的实际上是。net结构的一个实例。
可以把所有的基本数据类型看成支持某些方法的类。
string s =
预定义的值类型:表示基本的数据类型:整型、浮点类型、字符类型、布尔类型。
预定义的引用类型:object类型、string类型。
在c#中,object类型就是最终的父类型,所有内置类型和用户定义的类型都是从它派生而来。object类型可以用于两个目的:
可以使用object类绑定任何子类型的对象。使用object类型把堆栈中的一个值对象装箱,再移动到堆中。
object类型执行许多一般用途的基本方法。用户定义的类需要使用一种面向对象技术——重写,提供其中一些方法的替代执行**。例如,重写tostring(0时,要给类提供一个方法,给出类本身的字符串表示。
c#有string关键字,在翻译为。net类时,它就是。
string str1 = hello”
尽管这是一个值类型的赋值,但string是一个引用类型。string对象保留在堆上。因此,当把一个字符串变量赋给另一个字符串时,会得到对内存中同一个字符串的两种引用。
但是string与引用类型在常见的操作上有一些区别。例如,修改其中一个字符串,就会创建一个全新的string,而另一个对象没有改变。
class program
static void main(string args)
string s1 = a string";
string s2 = s1;
s1 is" +s1);
s2 is" +s2);
s1 = another string";
s1 is now" +s1);
c c语言入门基础教程教程
十 引用 引用和指针类似,都是直接对变量地址操作,区别是引用对象不能改变,引用要直观好理解一些,下面我们来看一个练习 1 启动 geany 1 点菜单 应用程序 编程 geany 启动 geany 新建一个 c 源程序 2 点菜单 文件 另存为 命令,以 refer 为文件名,保存文件到自己的文件夹...
2019高级教程
最佳答案。1.找到 插入 菜单中的 选项,点击其中的 来自文件 就会打开 插入 对话框,通过其中的 查找范围 一步一步找到存放 的文件夹,看到你需要的 文件时双击它就可以了。2.如果你的 文件很大,插入ppt中之后还是很大,用鼠标单击该 他的周围就会出现8个控制点 小白圈 把鼠标放在任意一个控制点上...
Excel高级教程
index 在excel中统计与上报两不误 3 excel中单列 的打印方法 4 巧妙删除excel中的换行符 4 execl中为每页设置行标题 5 excel中日期与时间的快速处理 5 利用excel的函数和筛选功能巧妙分班 6 在excel单元格中设置 斜线 效果 6 将excel的文本数字转换...