|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如net网页编程改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。get是读取属性时举行的操纵,set是设置属性时举行的操纵。界说一个属性假如只要get,这个属性就是只读的。一样,只要set,属性就是只写的,固然只写的属性是没有义务意义的。
假定类是一个银行,既能存钱也能取钱.
privatem_money;
privateclassbank()
{
get{
returnm_money;
}
set{
m_money=value
}
m_money就像银行里的主动存存款机,你看不见内里的money,但你能用set(存钱),用get(取钱)。m_money是一个公有字段,是分装在类中的,类之外的程序不克不及间接会见的,类的set和get成员是内部程序会见类外部属性的独一办法,就像你往银行取钱,你不克不及间接从银行的保险柜里拿到钱,而是银行业务职员把钱掏出来给你的。
属性在挪用者看来就像一个一般的变量,一般变量怎样用,它就怎样用,但作为类的计划者,你能够使用属性来埋没你类中的一些字段,使外界只能经由过程属性来会见你的字段,你能够经由过程属性来限定外界对你的字段的存取,就使用get,set,假如你想让用户随便存取你的字段,那末就完成set和get,假如只想让用户读取字段,就只完成get,若只想让用户写字段就只完成set,同时你还能够在set和get中对用户传送来的值举行一些考证事情,以确保你的字段将含有准确的值。
好比privateinta;
publicintIndex
{
get
{
returna;
}
set
{
if(value>0)
a=value;
else
a=0;
}
}
能够看出,getset有一种函数的特性。
getset一则是埋没组件或类外部的实在成员,
二是用来创建束缚的,好比,完成“有我没你”这类束缚。
三是用来呼应属性变更事务,当属性变更时做某事,只需写在SET办法里就好了。
有两种路子展现类的定名属性——经由过程域成员大概经由过程属性。前者是作为具有大众会见性的成员变量而被完成的;后者其实不间接回应存储地位,只是经由过程存取标记(accessors)被会见。
当你想读出或写进属性的值时,存取标记限制了被完成的语句。用于读出属性的值的存取标记记为关头字get,而要修正属性的值的读写符标记记为set。
1:usingSystem;
2:
3:publicclassHouse
4:{
5:privateintm_nSqFeet;
6:
7:publicintSquareFeet
8:{
9:get{returnm_nSqFeet;}
10:set{m_nSqFeet=value;}
11:}
12:}
13:
14:classTestApp
15:{
16:publicstaticvoidMain()
17:{
18:HousemyHouse=newHouse();
19:myHouse.SquareFeet=250;
20:Console.WriteLine(myHouse.SquareFeet);
21:}
22:}
House类有一个定名为SquareFeet的属性,它能够被读和写。实践的值存储在一个能够从类外部会见的变量中——假如你想看成一个域成员重写它,你所要做的就是疏忽存取标记而把变量从头界说为:
publicintSquareFeet;
关于一个云云复杂的变量,如许不错。可是,假如你想要埋没类外部存储布局的细节时,就应当接纳存取标记。在这类情形下,set存取标记给值参数中的属性传送新值。(能够更名,见第10行。)
除可以埋没完成细节外,你还可自在地限制各类操纵:
get和set:同意对属性举行读写会见。
getonly:只同意读属性的值。
setonly:只同意写属性的值。
除此以外,你能够取得完成在set标记中无效代码的时机。比方,因为各种缘故原由(或基本没有缘故原由),你就可以够回绝一个新值。最好是没有人告知你它是一个静态属性——当你第一次哀求它后,它会保留上去,故要尽量地推延资本分派。
计算机发展到这个时候,很多技术日益成熟,想学好一种技术都是不容易的,当你学会用的时候你对它的很多原理可能很不了解) |
|