上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 52 下一页

2012年6月26日

C#定义属性-只读属性

摘要: 只有get访问器的属性为只读属性,此属性不定义set访问器。语法如下:<访问修饰符> 数据类型 属性名{get{}}定义了只读属性,就只能通过该属性取值,而不能赋值。private int _age;public int Age{get{ return _age;} 阅读全文

posted @ 2012-06-26 13:24 流星落 阅读(1462) 评论(0) 推荐(0) 编辑

C#属性简介

摘要: 我们知道,类成员包括变量和方法。如果希望其他类能够访问成员变量的值,就必须定义成公有的,而将变量设为公有public,那这个成员变量的就可以被任意访问(包括修改,读取),这样不利于数据安全。那怎么办呢?C#通过属性特性读取和写入字段(成员变量),而不直接直接读取和写入,以此来提供对类中字段的保护。属性可用于类内部封装字段。属性是C#面向对象技术中封装性的体现。注意:字段就是类的成员变量,为配合属性而这样称呼的。属性和字段的区别: 属性是逻辑字段;属性是字段的扩展,源于字段;属性并不占用实际的内存,字段占内存位置及空间。 属性可以被其它类访问,而大部分字段不能直接访问。属性可以对接收的数据范围作 阅读全文

posted @ 2012-06-26 13:23 流星落 阅读(212) 评论(0) 推荐(0) 编辑

C#定义属性-读写属性

摘要: 通常属性包括get{}访问器和set{}访问器。get{}访问器用来返回相应的私有字段的值,用return来返回。set{}访问器用来设定相应字段的值,相当于一个隐含的输入参数,采用value来赋值。读写属性:读写属性是同时包括get访问器和set访问器的属性,get访问器定义对数据访问,set访问器定义对数据的读取。语法如下:<访问修饰符> 数据类型 属性名{get{}set{}}private string _name;public string Name{get{ return _name;}set{ _name = value;}通俗的讲,具有读写属性的字段,可以通过属性赋 阅读全文

posted @ 2012-06-26 13:23 流星落 阅读(921) 评论(0) 推荐(0) 编辑

C#中this关键字的使用

摘要: 保留字this仅限于在构造函数、类的方法和类的实例中使用,它有以下含义:●在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用。●在类的方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用。●在结构的构造函数中出现的this作为一个变量类型,它表示对正在构造的结构的引用。●在结构的方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用。除此之外,在其它地方使用this保留字都是不合法的。比如在一个AAA类里有一个aaa的变量在这个AAA类中调用这个aaa变量就可以用this.aaa如果是在别的类中就要实例化一个对象来调用这个变量AAA a= 阅读全文

posted @ 2012-06-26 13:22 流星落 阅读(202) 评论(0) 推荐(0) 编辑

C#中的结构体要使用new来实例化吗?

摘要: 声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。结构类型使用new不会分配托管堆分配内存而是调用构造函数初始化字段。结构的构造函数要么是有参数的,不可能是无参数,应为无参数是系统自己隐式添加的,就算有另外的构造函数,如果你显示的声明一个无参数的构造函数在结构里,将导致编译错误。结构体如果不用new初始化,也可 阅读全文

posted @ 2012-06-26 13:20 流星落 阅读(2194) 评论(0) 推荐(0) 编辑

C#数据类型-结构类型

摘要: 有时我们可能对同一事物使用多个不同的变量来描述,如果将其分开来,显得不够灵活。结构类型很好的解决了这个问题,它把多个不同的变量组织在一起。结构和类有很多相同的地方,结构可以看成一个轻量的类。结构使用struct关键字定义。其定义方法如下:struct 结构名称 { 成员声明列表; }成员可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等。每个成员在声明的时候都采用如下的格式:访问修饰符 类型 名称;using System;struct Teacher{public string Name; // 老师姓名public uint Age; // 老师年龄public stri 阅读全文

posted @ 2012-06-26 13:19 流星落 阅读(616) 评论(0) 推荐(0) 编辑

C#构造函数的重载

摘要: C#中的构造函数也可以应用方法重载。C#中有默认构造函数,也可以定义带参数的构造函数。构造函数必须与类同名,并且不能有返回值。所以C#构造函数重载相当于不同数量的参数方法重载。using System;class Animal{public string _name;public string _color;public int _speed;public Animal(){ this._speed = 30;}public Animal(string name, string color){ this._name = name; this._color = color;}public Ani 阅读全文

posted @ 2012-06-26 13:18 流星落 阅读(1062) 评论(0) 推荐(1) 编辑

C#方法参数个数和类型相同,名称不同,可以实现重载吗

摘要: 比如说:(1)public void add(int i){}(2)public void add(int i,int j){}(3)public void add(int a){}(4)public void add(double i,int j){}1和2算重载因为那个数不同。2和4也算重载因为类型不同。那1和3算不算重载?他们的名字不同??这不能通过编译。因为1和3本质是一样的两个方法,参数的名称本质只是在方法内部的一个变量的标识,重载只与参数类型和参数个数有关。如果有多个参数,那么如果这些参数的类型不同就要考虑参数位置了。例如:public void print(int a,Strin 阅读全文

posted @ 2012-06-26 13:17 流星落 阅读(960) 评论(0) 推荐(0) 编辑

C#方法重载-基于不同类型的参数的方法重载

摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication7{ class Test { static void Main(string[] args) { Test ts = new Test(); Console.WriteLine("两个数最大的数是:{0}",ts.MaxNum(12, 33)); Console.WriteLine("三个数最大的数是:{0}", ts.MaxNum(1 阅读全文

posted @ 2012-06-26 13:16 流星落 阅读(450) 评论(0) 推荐(0) 编辑

C#只能靠参数而不能靠返回值类型的不同来区分方法重载

摘要: 重载必须要用参数来区分,传入不同参数,可以实现重载。可以这样理解,你调用一个方法,如果有多个方法同名,系统必须要知道到底你要调用哪一个,参数可以帮助系统在方法入口处得到答案,他根据你给的参数就知道该将哪个方法的入口调入栈中。如果只有返回值的不同,很多情况系统是不可能得到有效的判断条件的。比如:string method(); int method();上面两个方法,第一个返回字符串类型值,第二个的返回值是整数类型。如果你这样调用:method();在这种情况下,编译器和程序员都不知道哪个method方法被调用。 阅读全文

posted @ 2012-06-26 13:16 流星落 阅读(837) 评论(0) 推荐(0) 编辑

上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 52 下一页

导航