C#的静态方法与静态成员(转)
生活随笔
收集整理的這篇文章主要介紹了
C#的静态方法与静态成员(转)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
using?System;
class?Test
{
int?x;
static?y;
void?F(){
????x=1;??//正確,?等價于this.x=1
????y=1;??//正確,?等價于Test.y=1
}
static?void?G(){
????x=1;??//錯誤,?不能訪問this.x
????y=1;??//正確,?等價于Test.y=1
}
static?void?Main(){
????Test?t=new?Test();
????t.x=1;??//正確
????t.y=1;??//錯誤,?不能在類的實例中訪問類的靜態(tài)成員
????Test.x=1;??//錯誤,?不能按類訪問非靜態(tài)成員
????Test.y=1;??//正確
}
}
類的非靜態(tài)成員屬于類的實例所有,?每創(chuàng)建一個類的實例,?都在內(nèi)存中為非靜態(tài)成員開辟了一個區(qū)域;?而類的靜態(tài)成員為類所有,?為這個類的所有實例所共享.?無論這個類創(chuàng)建了多少個副本,?一個靜態(tài)成員在內(nèi)存中只占一個區(qū)域.
class?Test
{
int?x;
static?y;
void?F(){
????x=1;??//正確,?等價于this.x=1
????y=1;??//正確,?等價于Test.y=1
}
static?void?G(){
????x=1;??//錯誤,?不能訪問this.x
????y=1;??//正確,?等價于Test.y=1
}
static?void?Main(){
????Test?t=new?Test();
????t.x=1;??//正確
????t.y=1;??//錯誤,?不能在類的實例中訪問類的靜態(tài)成員
????Test.x=1;??//錯誤,?不能按類訪問非靜態(tài)成員
????Test.y=1;??//正確
}
}
類的非靜態(tài)成員屬于類的實例所有,?每創(chuàng)建一個類的實例,?都在內(nèi)存中為非靜態(tài)成員開辟了一個區(qū)域;?而類的靜態(tài)成員為類所有,?為這個類的所有實例所共享.?無論這個類創(chuàng)建了多少個副本,?一個靜態(tài)成員在內(nèi)存中只占一個區(qū)域.
類的靜態(tài)方法是屬于類的,是在定義類的時候就初始化好的方法了,調(diào)用的時候要通過類名.靜態(tài)方法來調(diào)用。動態(tài)方法是在對象初始化的時候初始化的,只有通過實例話成功的對象才能調(diào)用,調(diào)用方法可以是?對象名.動態(tài)方法。
總結(jié)
以上是生活随笔為你收集整理的C#的静态方法与静态成员(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 下DHCP的安装
- 下一篇: ASP.NET 3.5 新特性开发向导实