需要访问其分配类的扩展方法的动态变量

例如,如果我有一个扩展方法,例如:


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() 工作?在这个例子中,我不想使用明显的字符串转换。


后面在实际项目中,我会有多个不同类型的对象,我将它们分配给一个动态变量,并调用我添加到所有这些类中的公共扩展方法。


海绵宝宝撒
浏览 138回答 2
2回答

www说

如果每个可能类型的扩展方法都定义在同一个类中,那么您可以将其作为静态方法调用:SomeClass.StringExtensionTest(overflow);否则,扩展方法在dynamic. 扩展方法将方法添加到可能找到的方法集中,具体取决于调用所在的 C# 文件中使用的命名空间。在运行代码中没有与命名空间或 C# 文件等效的方法。
打开App,查看更多内容
随时随地看视频慕课网APP