本來的目的:
嘗試這在A類的Mian()方法中,通過實例化B,來調用類B的非靜態方法show()
原本是寫在 program.cs 文件裡面的,也就是如下的代碼1.1.1
//代碼1.1.1
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //using AB; 6 7 namespace ConsoleApplication1 8 { 9 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 B b = new B(); 15 b.show(); 16 Console.ReadKey(); 17 18 } 19 } 20 } 21 22 class B 23 { 24 public void show() 25 { 26 Console.WriteLine("顯示跨類調用"); 27 } 28 }
<因為Class B 默認的修飾符是 internal,認為是如果是類B寫在包含類A的namespace裡面就會沒法調用,但是實際的運行過程中仍然是可以調用的。無法調用的是把類B單獨在放在另外一個namespace中,見代碼1.1.2 >
//代碼1.2.2
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5// using AB;也可以放在此處 6 7 namespace ConsoleApplication1 8 { 9 using AB; 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 B b = new B(); 15 b.show(); 16 Console.ReadKey(); 17 18 } 19 } 20 } 21 22 namespace AB 23 { 24 class B 25 { 26 public void show() 27 { 28 Console.WriteLine("顯示跨類調用"); 29 } 30 } 31 }
後來想嘗試一下寫的原來c++的風格的頭文件的調用
截圖如下,Program.cs 和 Class1代碼分別是1.1.3 和 1.1.4
10:58:30 如下
//代碼 1.1.3
using System; using System.Collections.Generic; using System.Linq; using System.Text; using AB; namespace ConsoleApplication1 { // using AB; class Program { static void Main(string[] args) { B b = new B(); b.show(); Console.ReadKey(); } } }
//代碼 1.1.4
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AB { class B { public void show() { Console.WriteLine("顯示跨類調用"); } } }