1樓:碧海聽濤
當屬性訪問器中不需要其他邏輯時,可以用這種簡單的宣告方式宣告。稱為自動實現的屬性,自動實現的屬性必須同時宣告get和set訪問器。相當於編譯器幫你寫上了
getset
2樓:
其實也可以簡寫 在 vs08 和vs10中
public string name
3樓:匿名使用者
private string _sitetosearch;
public string sitetosearchget}
等同以下寫法:
public string sitetosearch
4樓:
簡化了05 及以上。
5樓:匿名使用者
當屬性訪問器中不需要其他邏輯時,自動實現的屬性可使屬性宣告變得更加簡潔。
編譯器將建立一個私有的匿名後備欄位
下面是例子:
////// 當屬性訪問器中不需要其他邏輯時,自動實現的屬性可使屬性宣告變得更加簡潔。
/// 當您如下面的示例所示宣告屬性時,編譯器將建立一個私有的匿名後備欄位,
/// 該欄位只能通過屬性的 get 和 set 訪問器進行訪問。
//////
/// 請注意,本類 沒有定義任何的 內部變數來儲存 屬性值。
/// 內部變數由編譯器建立。
//////
c#屬性定義。get與set訪問器是怎麼一回事,
6樓:她是我的小太陽
1.屬性的宣告
總的來說,只要注意屬性宣告或者在使用是的一些規定就可以了,還有最為重要的:屬性的操作過程。
宣告是用如下語法:
型別 屬性名
注意:屬性還可以跟方法一樣有引數,當然限制的是,引數必須是值引數外,引數的列表的宣告與方法的一樣。
訪問器包括包含get訪問器和set訪問器
2.get訪問器
get訪問器相當於一個無引數方法,該方法具有屬性型別的返回值以及屬性相同的修飾符,而執行get訪問器就是相當於讀取了欄位的值。需要注意的是,在get訪問器中,返回值作為屬性值提供給呼叫表示式。
例如:private int a ;
public int a
}注意:當引用屬性時,除非該屬性為賦值目標,否則將呼叫get訪問器讀取該屬性的值。(在沒看到上面這句話之前,也很疑惑,呼叫時怎麼讓物件知道是get呢,還是set呢?)
3.set訪問器
set訪問器相當於一個void方法,該方法具有單個屬性型別的值引數,以及包含屬性相同的修飾符。
在set訪問器中,新的屬性值通過set訪問器的引數傳遞。值得注意的是,在通過新的屬性值賦值給欄位時,顯示引數傳遞必須宣告為與該屬性相同的資料型別,當然也可以使用隱式引數,不加宣告時,編譯器將使用隱式引數value來表示賦給屬性的新值。set訪問器隱式具有名為value的引數(value),此引數的型別是屬性的型別。
例如:private int a ;
public int a }
屬性按如下方式,根據所使用的訪問器進行分類:
只帶有get訪問器的屬性稱為只讀屬性。無法對只讀屬性賦值。
只帶有set訪問器的屬性稱為只寫屬性。只寫屬性除作為賦值的目標外,無法對其進行引用。
同時帶有get和set訪問器的屬性為讀寫屬性!
注意:在屬性宣告時,get和set訪問器都必須在屬性體內部宣告。
4.呼叫get訪問器在概念上等效於讀取欄位的值。但是並不是單單被編寫成只有返回儲存在欄位中的值,事實上可以通過訪問多個欄位的值來計算出使用者所需要的值,然後作為返回值,返**用的表示式。
例如:private int a ;
private int b ;
public int aaa}
7樓:匿名使用者
你可以把它當做是一種方法
比如private int num = 3;
public int num
set}
當我們例項化這個物件時,如果對obj.num賦值的話,會執行set裡面的程式,如果取得它的值的話,比如int x= obj.num 會執行 get裡面的語句
8樓:
我也是初學者。我用笨方法來理解的,你不要笑話。
我認為,set和get都是c#語言約定俗成的東西,是兩個方法。兩個什麼樣的方法呢?在賦值的時候,呼叫屬性的set方法;在讀取的時候,呼叫屬性的get方法。這樣。
正常變數是用自己的記憶體空間存取值,而屬性只是將"存取"抽象化為方法,並沒有實際的存取空間。
這有點像**上的二道販子。實際上他沒有自己的貨架和庫存,只是低價買進再**賣出(跑題了)
初學者的笨理解,不要笑話啊。呵呵
9樓:
避免了對欄位的直接訪問,可以在賦值時先進行判斷,增加了安全性;我是這樣理解的餓
c#中的get和set訪問器怎麼理解和使用?
10樓:匿名使用者
假設型別為t
private t _mypropertypublic t myproperty
set}
編譯最終生產方法
t get_myproperty()
void set_myproperty(t value)在外部使用時例如:
myproperty = new t();
呼叫set_myproperty方法將new t()傳入;
t x = myproperty;
呼叫get_myproperty()來返回結果
11樓:愛刷_棍哥
get和set是c#類中屬性的封裝將它隱藏public string flagget}定義一個變數flag,再定義一個公共成員變數flag(可以再別的類中對flag進行賦值,如obj.flag="aa"),set{}將「aa」賦給value,再將value賦給變數flag,flag=「aa「,再用get{}返回給flag;
而且可以對變數進行處理.增加安全性
get set 那就是在{}外面一個提取 a的直 一個是給a 賦值
get set 使用方法
string a;//成員變數
public string fuzhi//設定值 value是自動接受資料的
屬性中如果只有set,則是隻寫屬性;
如果既有get又有set則是可寫屬性;
且get和set分別可以用不同的修飾符。
修飾符分別代表的含義:
private:私有類內部可訪問;
public:全域性;
internal:程式集內部可訪問;
protected:受保護成員在它的類中可訪問並且可由派生類訪問。
c#程式,這裡的get和set兩句是什麼意思?為什麼要這樣寫?
12樓:
這是類的屬性。「get」和「set」分別對應屬性的「讀取」和「寫入」。
就像textbox控制元件,
你要讀取控制元件中的文字放到str變數中,語句應該是private string str=textbox.text;//這裡用到get屬性
要設定控制元件文字的值為「abc」,語句應該為textbox.text="abc";//這裡用到set屬性那麼,該控制元件的text讀寫操作的源**類似:
private string _text;
public string text
set}
其實,類中的變數在宣告時候一般宣告為private(私有),其他類要訪問該變數,就應該通過屬性的形式。這樣的規範,對應類的封裝性。
例如,一個人,有姓名、年齡等屬性。
那麼可以寫為:
public class person
set}
private int _age;
public int age
set}
}宣告一個人並設定人的姓名和年齡則為
person person1=new person();
person1.name="小明";
person1.age=10;
另外,人的年齡不可能為負數,一般不可能大於130歲。那麼在屬性設定年齡時候可以過濾無效值
public int age
setelse}}
13樓:
讀取和儲存值。在其他地方建立一個物件後,這個物件就有set和get這兩個方法,呼叫者兩個方法就可以實現存值和取值。在開發中這些get和set一般是放在model類裡面。
14樓:萢萢
讀寫許可權,get是獲取值,即讀取值,set是賦值,即寫入值。
15樓:匿名使用者
因為私有變數通常是不能被訪問的,那麼外界要訪問這個物件的變數咋辦,於是就用屬性的形式,來對外public一個變數,可以通過它來對內部的私有變數賦值或取值。你也可以在set的時候,進行一些邏輯的處理,比如value<5,才讓它賦值。
16樓:
.net屬性,編譯器會自動幫你生成兩個函式
17樓:匿名使用者
get set 是對外的介面 ,一般在例項中訪問成員資料需要這個成員資料的訪問方式為public ,get 就是獲取,set 就是設定。
屬性的訪問器包含與獲取(讀取或計算)或設定(寫)屬性有關的可執行語句。訪問器宣告可以包含 get 訪問器或 set 訪問器,或者兩者均包含。
原因:具有很好的收縮性,對get 和set 可以單獨設定訪問許可權 比如對某個成員資料只能讀取或者只寫,或者只有派生類可以訪問等。需要通過函式來呼叫私有成員資料,屬性提供了高效的訪問模式和簡單的書寫。
用法:類名.屬性=「」賦值 set作用變數=類名.屬性 取值 get 作用
c# get和set是什麼意思 怎樣使用?
18樓:匿名使用者
你可以理解為一個賦值 set , 一個獲值 get。
列子:一個私有的屬性 年齡:age
而我們為了程式的可靠性、安全性等各個方面,一般寫成private int age;
public int age
set}
這樣 age的值就能很好的保護起來,我們只要引用age就行了
19樓:匿名使用者
get和set是在變寫類的屬性時用到的。set是設定該屬性的值,get是獲取該屬性的值。如下是一個設定時間的屬性
public int time
//如果把set去掉,就是一個只讀屬性。。。。
set}
20樓:匿名使用者
是屬性的訪問器
例子private int _count;
//下面是一個可讀可寫屬性
public int count
//如果把set去掉,就是一個只讀屬性。。。。
set}
21樓:
get是獲取值
set是賦值
一般常見的使用如下:
public string abc;
public string abc
set}
winform中常用於
兩個窗體間的傳值
為什麼這個c#**只有get而沒有set的,set不是還得什麼什麼=value呢嗎
22樓:匿名使用者
因為這個**並未定義 set,所以這個屬性乃只讀屬性,即只可以獲取該屬性的值,而不可以賦值。
同理,也可以為一個屬性,只定義set,而不定義get,這樣就成了只寫屬性,即只可以賦值,而不可以讀取。
更多情況下,get/set 也可以為其指定修飾符(public/private/internal)等,對可訪問性進行限制。
set **段,形同於如下的偽**:
int a;
public int a;
}//偽**
public void seta( int value )
只不過呼叫方式,是對屬性直接賦值,而不是呼叫方法。同時,value 這個引數名稱,是所有屬性賦值的內建引數,無法進行修改。
工作方式的不同可以分為隨機存取儲存器和
半導體儲存器按照工作方式的不同,可以分為隨機存取儲存器 ram,也叫讀寫儲存器 和rom。記憶體儲器可與微處理器直接交換資訊,記憶體儲器根據工作方式的不同又可分為?和?隨機存取儲存器 ram cpu對它們即可度出又可寫入資料。只讀儲存器 rom cpu對它只取不存。高速緩衝儲存器cache是cpu和...
訪問學者和博士後有什麼區別,博士後與訪問學者有什麼區別
申請博士後學習研究,前提是當事者本人已經取得了博士學位 訪問學者學習,只要是專業技術人員都可以申請。博士後與訪問學者有什麼區別 liyan5011回到的很好。一個a學校的老師 去b學校訪問進修一年 完了之後 這個老師應該是回a學校繼續教書。開闊視野。對個人經歷 評職稱 申請專案等都有幫助。博士後是指...
熱水器不出水怎麼回事冷水和熱水都不出
老蔣搞教育 熱水器不出熱水,相信這個是比較普遍的問題,如果恰好是要洗澡,卻沒有熱水,這也是個比較急人的問題,熱水器在冬天的使用頻率較高,但是很多朋友會反映在洗澡的過程中出現熱水器不出水的情況,很是尷尬,也不知道該如何維修熱水器。檢查下你的熱水器的設定問題 這種情況比較多,很多使用者在使用電熱水器的時...