1樓:網友
get和set是關鍵字。應該竟是不可代替的。
代替是什麼意思?
可以用函式,就是方法來代替get和set的功能,但是就不能使用「=」運算子了,只能用函式,方法的通常形式";"
也可以將變數直接暴露為public,可是這樣就不能對賦值以及獲取過程進行控制。
比如你想知道程式執行中你想知道物件a的a屬性(prv_a用於儲存a)被獲取多少次,你可以在a裡新增私有屬性a_n,然後get裡多寫一句"a_n++;
又比如你想防止乙個a被賦予乙個小於0的值,你可以在set裡多寫幾句。
if(value<0)
prv_a=0;
elseprv_a=value;
這樣當別的程式設計師使用你的物件a如下:
但是的得到的結果卻依然是;
2樓:網友
string a;
geta()
return a;
string b;
getb()
return b;
seta(int x)
a=x;樓主這意思吧。
可以 但是麻煩。
c# 中可以用方法代替屬性嗎?
3樓:天道周星
屬性是一種殊的方法,一般的用法是定義乙個公有的屬性來封裝乙個私有的欄位,限制欄位是否可讀可寫,並可在讀寫控制中對其進行一些判斷與驗證等,防止輸入錯誤無效的值,當然也不必何欄位一一對應,在屬性的訪問函式中還可以進行其它各種控制和計算。
方法可以完成和屬性一樣的功能,但相對來說屬性更為簡便。
4樓:網友
int size;
方法:public int getsize() public void setsize (int value)
屬性:public int size set }一般情況屬性可以用以上方法代替。
但屬性的有讀寫器get與set,也就是可以設定屬性的是否唯讀readonly(只寫get)或只寫writeonly(只寫set,不建議設定只寫屬性)
ps:c#中不支援用readonly和writeonly申明屬性。
如果用的話,用readonly申明屬性的時候不能寫set,用writeonly申明屬性的時候不能寫get.
5樓:理工愛好者
c#的屬性, 實際上生成的中間**還是方法。
6樓:冰之軍
恩。。這個問題簡單。。一般人都是為了安全。
private string name;
public string name
set}看到上面的沒。我們是直接呼叫name賦值。。name是私有的。外部類不能隨便訪問。
屬性在外部類賦值中使用較多。跨類用比較爽。
7樓:網友
可以認為屬性是一種特殊的方法。
c#中的屬性get和set到底是什麼意思
8樓:網友
get是給屬性賦值,set是取屬性的值。
get、set用法:
一是隱藏元件或類內部的真是成員;
二是用來建立約束的,比如,實現「有我沒你」這種約束;
三是用來響應屬性變化事件,當屬性變化是做某事,只要寫在set方法裡就行。
當你想讀出或寫入屬性的值時,存取標誌限定了被實現的語句。用於讀出屬性的值的存取標誌記為關鍵字get,而要修改屬性的值的讀寫符標誌記為set。
下面是示例**:
public class student
這裡是給私有屬性name賦值。
get//這裡取出私有屬性name的值 }
9樓:
get和set是c#定義屬性的規範,看以下示例:
public class person
可以通過 person的例項來訪問name,返回私有變數_name的值。
private set //不允許外部賦值,只能在person內部賦值,value就是賦過來的值}}
10樓:網友
private int a;是類變數。
private int b
set }是類屬性。
value表示這個屬性本身。
11樓:網友
這是c#的乙個語法規則!
在c#中,屬性同時必須定義get()和set()方法嗎?為什麼?
12樓:大加索爾
不一定。可以只有get()方法或者只有set()方法。
也可以get()和set()方法都有。
只有get()方法的屬性叫做唯讀屬性,只能讀取,不能寫入。
同樣,只有set()方法的屬性叫做只寫屬性,只能寫入,不能讀取。
兩者都有的既可以讀取,也可以寫入。
c#裡的 自動屬性是不是相當於簡寫了 通常的setget方法,以下這麼寫對麼
13樓:網友
public class aaa
set}與以下的寫法一樣的。
public class aaa}
c#get和set用法詳解
14樓:非常可愛
1、當引用屬性時,除非該屬性為賦值目標,否則將呼叫get訪問器讀取該屬性的值。
例如:employeee1=newemployee();//thegetaccessorisinvokedhereget
訪問器必須在return或throw語句中終止,並且控制不能超出訪問器體。
2、set訪問器與返回void的方法類似,它使用稱為value的隱式引數,此引數的型別是屬性的型別。
set訪問器被新增到name屬性:
publicstringname
set}當對屬性賦值時,用提供新值的引數呼叫set訪問器。
例如:"joe";//thesetaccessorisinvokedhere在set訪問器中對區域性變數宣告使用隱式引數名(value)是錯誤的。
15樓:江城
首先,get和set是屬。
抄性特有的兩個方法。屬性是對欄位的封裝,是為了程式資料的安全性考慮的。總的來說,欄位有兩種操作許可權,就是獲取和修改,就分別對應的是get和set方法了,可以通過制定get和set方法來限定欄位的訪問許可權。
例如:private int _age;//年齡 欄位public int? age
set}
16樓:
set就是公共屬性設定值,get就是獲取公共屬性的值。
為什麼c#中要用屬性來封裝欄位有什麼好處?我可以把欄位宣告為私有的,然後用兩個public方法來代替get,s
17樓:沉默海賊
幫助別人就是幫助自己! 如果這裡解決了您的問題,請您點一下推薦 × 為什麼c#中要用屬性來封裝欄位有什麼好處?我可以把欄位宣告為私有的,然後用兩個public方法來代替get,set塊啊!!!
c#語言5 次瀏覽 2008-09-04 17:5512 個回答 可以控制變數是否可以讀取而不寫入,或者是僅僅寫入而不讀取,或者可讀可寫!
首先private string name;
public string name
set}這樣看起來美觀~ 程式的可讀性好,結構也清晰,它有保護資料的作用。
引入屬性這個概念純粹是為了提高**的可讀性。
當然如果你一定要說直接寫成方法可讀性會更好,那也沒辦法,這是個見仁見智的問題。
但別忘了。net是誰設計的。
不過屬性的乙個簡單的使用就是在設定或獲取的過程成,可以自動呼叫其他的方法。
c# codepublic propertytest ; set ; 其實在內部是自動吧每個屬性前加上 get_**set_**的,實際上也是方法的實現而已。 2008-09-05 20:22 推薦:
0 次 有幫助? 請推薦 其實兩種實現都差不多,但封裝起來,用起來比較靈活點。。。2008-09-05 21:
c#程式設計,屬性那裡,使用get,set有什麼好處嗎?
18樓:匿名使用者
嚴格來講,這是物件導向中「封裝」這一概念的體現,為了保證**的安全性。get,set是「屬性」這一概念中的2個方法。俗稱「訪問器」。
舉乙個不太恰當的例子,3個人:老闆,秘書,員工,秘書就是」屬性「,get-》秘書將老闆的指示傳遞給員工,set-》秘書將員工的意見傳遞給老闆。為的就是不讓員工和老闆直接接觸,如果這個員工是恐怖組織的成員,那多危險是吧?
19樓:匿名使用者
這個就是這麼用的啊,欄位是私有的,只能通過get set來給欄位賦值或取值,保證欄位的私有性,外面不能自己隨便給他們賦值,這裡還可以進行非法值判斷。
20樓:匿名使用者
屬性用於保護欄位,就像委託變數和事件的關係一樣,只不過欄位是,事件是remove,add
21樓:匿名使用者
有get的可以獲取值,有set的可以賦值。有些屬性只讓取值不讓賦值,就只寫get方法。。。
22樓:網友
是封裝,也就是拆箱和裝箱。好處主要是為了降低元件之間的耦合度,以提高擴充套件性和維護性。
23樓:匿名使用者
封裝的好處,讓你只能通過程式規定方法來訪問,限制不合理操作(抖胸)
24樓:匿名使用者
可以對相應欄位在存取操作時做檢查 保證資料的安全和合法。
25樓:匿名使用者
封裝,不讓使用者知道里面是什。
26樓:匿名使用者
get和set {}這個裡頭可以做很多事情。
c#中get,set屬性的作用是什麼?
27樓:seo行者
1> get和set把讀取和設定分開,這樣的**更容易維護。 在封裝資料庫欄位的時候非常有用。
get在屬性中就是讀取屬性值,當然,你可以對當前的值進行加工後再返回。
set則相反,在設定屬性值的時候被執行。可以用來驗證設定的值以及進行其他相關處理。
2>一般類是public的,那設定的值也需要是public的。
28樓:網友
如果有乙個小狗類。
小狗都有四條腳,這是固定的,不能改變,所以它的腳屬性就不能隨便設了,既為唯讀,這個時候就要用到get而不必用到set ,不然就可以隨便設定,比如設為小狗為5條腳,這就不合適了。相反地,如果有乙個屬性只需要設定而不需要讀取,就用set就行了。如果既要讀又要寫,那就用set和get結合。
如果小狗還有乙個年齡屬性,還可以在set 裡面設定一下值的範圍,比如if(value<20)age=value; 這樣就保證了合理的年齡,你不能設為100歲吧,不然都成神。
一般把類中的欄位設為private,把屬性設為public.如public class dog
get}}
c中可以用delete釋放陣列的空間嗎
這樣定義陣列的話是在棧上分配記憶體,超過作用域範圍的時候會自動釋放掉,使用new操作符分配的記憶體,是在堆上,需要使用delete釋放,因此如果像你那樣定義陣列的話,不必釋放記憶體 用delete釋放的只能是用new動態分配的陣列空間,若陣列不是動態分配的則不能用delete釋放。舉兩個例子詳細說明...
在中,可以用滑鼠拖動的方法實現文字塊的移動,具體操作是,先選定文字塊,然後
應該是b d對,a是複製,c不起作用。word 2010測試通過。19 在word的文件中,選定文件某行內容後,使用滑鼠拖動方法將其移動時,配合的鍵盤操作是 移動不用配合什麼鍵,直接拖動就行,複製的話可配合ctrl鍵。其實這個只要我自己試下不就可以知了,不用問人也行啊。如果想移動可以bai選中後按f...
表示顏色可以用color的什么方法
color類中有一個構造方法可以傳入三個int值,分別代表rgb顏色的值。color c new color int a,ing g,int b 設定color的rgb顏色值即可。color c new color int a,ing g,int b 設定color的rgb顏色值即可。ios如何使用...