c# 非靜態欄位、方法或屬性要求物件引用

wisdomone1發表於2012-03-13
學習內部巢狀型別時,提示如題資訊

其實就是你要使用的欄位,方法或屬性是非靜態方法,你要在例項化物件中使用它們

內部型別程式碼
 public class Team
    {

        public static int personcount;
        protected static string teamname;
        private static int foundyearnumber;
        internal string leadername=string.Empty;
        static void F()
        {
            //在外部型別訪問巢狀型別成員的格式:巢狀型別.成員
            Nested.innernum = 1;//外部型別可以直接訪問巢狀型別的靜態公共成員,public,internal
            Nested.ppx = 3;//外部型別不可以直接訪問巢狀型別的非靜態公共成員
            Nested n1 = new Nested();
            Team t1 = new Team();
            
            t1.leadername = n1.nonstax;
        }
       //巢狀或內部型別
       //在類或結構內部定義
        //巢狀型別預設為private,即巢狀型別對於外部型別(指team之外的型別),team是它的包含型別
        //但巢狀型別可以設定為public,protected,internal,protected internal,private

        //巢狀型別可訪問包含型別,如想訪問包含型別,請將其作為建構函式傳遞給巢狀型別
        public class Nested
        {
            //private Nested parent;//在巢狀型別中定義一個包含型別的變數或欄位

            public Nested()//在巢狀型別中訪問包含型別,為巢狀型別的建構函式傳遞包含型別的引數
            {
             //this.parent=p;
             //personcount = 1;//巢狀型別不能訪問包含型別(外部型別)的非靜態成員
             //說明在內部型別中可以直接訪問外部型別的public,private,protected,internal各類修飾符的static靜態成員,而不是非靜態成員
             //在內部型別中可以直接訪問外部型別成員是直接引用
             personcount = 2;
             teamname = "ls";
             foundyearnumber = 3;
            }
            public static int innernum;
            internal static int ppx;
            protected static int ps;
            private static int pria;
            public string nonstax;
        }
    }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-718433/,如需轉載,請註明出處,否則將追究法律責任。

相關文章