例如,如果我有一个扩展方法,例如: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 回答
![?](http://img1.sycdn.imooc.com/545847f50001126402200220-100-100.jpg)
www说
TA贡献1775条经验 获得超8个赞
如果每个可能类型的扩展方法都定义在同一个类中,那么您可以将其作为静态方法调用:
SomeClass.StringExtensionTest(overflow);
否则,扩展方法在dynamic
. 扩展方法将方法添加到可能找到的方法集中,具体取决于调用所在的 C# 文件中使用的命名空间。在运行代码中没有与命名空间或 C# 文件等效的方法。
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报
0/150
提交
取消