示例**:
using system;
namespace custom
}//1.自定義特性類必需以attribute結尾
//2.需要繼承自attribute
//3.一般自定義特性類中不定義方法
//4.自定義的特性需要用attributeusage指明該特性的適用程式結構
[attributeusage
(attributetargets.class)
]//表示該自定義特性用於class這種型別
class
testattribute
:attribute
public
int id;
public
string description;
public
string version;}[
test(1
,"自定義特性"
,"1.0.0")]
//當使用自定義特性時,不需要寫完整的特性名,只需要寫字首名即可
class
person
}
執行結果
1
自定義特性
1.0.0
示例**:
using system;
using system.reflection;
namespace testtype
public
static
void
testgettype()
methodinfo[
] methods = type.
getmethods()
;foreach
(methodinfo item in methods)
}public
static
void
testassembly()
}}class
man//屬性
public
void
sayhello()
//公有方法
private
void
sayhi()
//私有方法
}}
執行結果
program.cs(
57,20)
: warning cs0649: 從未對欄位「man.***」賦值,欄位將一直保持其預設值 0
program.cs(
55,21)
: warning cs0169: 從不使用字段「man.id」
程式集名稱:testtype, version=
1.0.0
.0, culture=neutral, publickeytoken=
null
程式集中的類:testtype.program
程式集中的類:testtype.man
所在的類名:man
所在的名字空間:testtype
所有公共變數:system.string name
所有公共變數:int32 ***
所有公共方法:system.string
get_addr()
所有公共方法:void
set_addr
(system.string)
所有公共方法:void
sayhello()
所有公共方法:system.type
gettype()
所有公共方法:system.string
tostring()
所有公共方法:boolean
equals
(system.object)
所有公共方法:int32
gethashcode
()
示例**:
//#define istest //如果取消注釋該巨集,sayyes()方法將會被呼叫
using system;
using system.diagnostics;
namespace main
[conditional
("istest")]
//只有當定義了istest巨集的時候才會被呼叫,但依然會被編譯到程式集裡
private
static
void
sayyes()
=> console.
writeline
("yes");
private
static
void
sayno()
=> console.
writeline
("no");
}}
執行結果
no
示例**:
using system;
namespace obsolete
// [obsolete("這個方法過時了,使用sayhi代替",true)]//當第2個引數為true時,呼叫該方法的地方將會報錯
[obsolete
("這個方法過時了,使用sayhi代替")]
//當第2個引數為預設值fales時,呼叫該方法的地方將會警告
static
void
sayhello()
static
void
sayhi()
}}
執行結果
program.cs(
8,13)
: warning cs0618: '「program.
sayhello
()」已過時:「這個方法過時了,使用sayhi代替」
hello ,
i am woman!
hi,i am woman!
C 程式示例
例1.用篩法判定素數 include include include using namespace std int main ifstream in sushu.txt for int a in a a 2 a 10000 cout 例2.若干個向量按長短排序 include include in...
C 特性總結
1 c 中類分為兩部分,成員變數和成員函式。成員函式位於 區,不占用類物件的空間。成員變數占用類物件的空間。2 每個成員函式有乙個this指標,一般情況下是成員函式的第乙個引數。3 物件一般情況下也是有資料對齊的。4 虛函式 如果乙個類中有虛函式,則會為此類生成乙個虛表 位於 區 然後在每個類物件的...
C 動態特性
在絕大多數情況下,程式的功能是在編譯的時候就確定下來的,我們稱為靜態特性。反之,如果程式的功能是在執行時刻才確定下來的,則稱為動態特性。動態特性是物件導向語言最強大的功能之一,因為它在語言層面上支援程式的可擴充套件性,而可擴充套件性是軟體設計追求的重要目標之一。c 虛函式 抽象基類 動態繫結 多型構...