C 特性示例

2021-10-01 10:08:04 字數 3180 閱讀 5128

示例**:

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 虛函式 抽象基類 動態繫結 多型構...