例如,如果我有一個擴展方法,例如:public static void StringExtensionTest(this string stringer) { MessageBox.Show("This is just a test for stackoverflow"); }使用簡單的測試代碼,例如:private void button1_Click(object sender, EventArgs e){ string overflow = "Only a test"; dynamic overflowed = "Only a test"; overflow.StringExtensionTest(); overflowed.StringExtensionTest();}我怎樣才能讓 overflowed.StringExtensionTest() 工作?在這個例子中,我不想使用明顯的字符串轉換。后面在實際項目中,我會有多個不同類型的對象,我將它們分配給一個動態變量,并調用我添加到所有這些類中的公共擴展方法。
2 回答

www說
TA貢獻1775條經驗 獲得超8個贊
如果每個可能類型的擴展方法都定義在同一個類中,那么您可以將其作為靜態方法調用:
SomeClass.StringExtensionTest(overflow);
否則,擴展方法在dynamic
. 擴展方法將方法添加到可能找到的方法集中,具體取決于調用所在的 C# 文件中使用的命名空間。在運行代碼中沒有與命名空間或 C# 文件等效的方法。
- 2 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消