你需要看一下入門的書籍,再理解一下C#語法規範。
c#是一種面向物件的語言,也就是說,你的class A\B 都是物件。
而你宣告的變數 x 是在A中的,
也就是說,當代碼沒有執行到class A的時候, 你是不可能知道A中有一個x 的。
所以,你在classA中,去操作類內部的變數,肯定是可以的,因為程式碼一定會執行,
而你在classB中,你是在執行B的程式碼,如果你要呼叫x,你就要先把classA給例項化,讓編譯器知道你在用A了,才可以呼叫A中的x。
如果你想不用new 就訪問一個變數,可以使用static修飾符
public static class A
{
public static int x;
}
這樣只要程式啟動,A和x都一直在記憶體中,你隨時可以直接呼叫,但是由於是靜態的,他們是不會被dispose的,也就是一直在佔記憶體。
而之前的做法,當A不被呼叫的時候,垃圾回收器會自動回收A,釋放記憶體。
你需要看一下入門的書籍,再理解一下C#語法規範。
c#是一種面向物件的語言,也就是說,你的class A\B 都是物件。
而你宣告的變數 x 是在A中的,
也就是說,當代碼沒有執行到class A的時候, 你是不可能知道A中有一個x 的。
所以,你在classA中,去操作類內部的變數,肯定是可以的,因為程式碼一定會執行,
而你在classB中,你是在執行B的程式碼,如果你要呼叫x,你就要先把classA給例項化,讓編譯器知道你在用A了,才可以呼叫A中的x。
如果你想不用new 就訪問一個變數,可以使用static修飾符
public static class A
{
public static int x;
}
這樣只要程式啟動,A和x都一直在記憶體中,你隨時可以直接呼叫,但是由於是靜態的,他們是不會被dispose的,也就是一直在佔記憶體。
而之前的做法,當A不被呼叫的時候,垃圾回收器會自動回收A,釋放記憶體。