C#:如何将对象强制转换为其实现的接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#:如何将对象强制转换为其实现的接口相关的知识,希望对你有一定的参考价值。
我想将一个对象转换为其实现的接口。但是有问题。
public class A : IA
{
public void Do() { }
}
public interface IA
{
void Do();
}
void ConvertType(object s)
{
var interface = s.GetType().GetInterfaces().FirstOrDefault(); // if s is of type A then interface is IA
var s = Convert.ChangeType(instance, type);
}
我正在例外:
对象必须实现IConvertible。在System.Convert.ChangeType
是否有更好的方法将对象转换为其实现的接口?我希望对象A为IA类型。
编辑:我不想直接进行转换,因为我事先不知道所有对象或其接口。类A和接口IA只是说明问题的示例,我事先不知道该对象。
答案
您可以这样投射:
IA instanceCasted = (IA) instance;
或者,如果您不想将其存储到变量中,则可以执行以下操作:
((IA)instance).DoYourMethod();
以上是关于C#:如何将对象强制转换为其实现的接口的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型为“Word.ApplicationClass”的 COM 对象强制转换为接口类型“Word._Application”
退出软件Excel出现无法将类型为“....”的 COM 对象强制转换为接口类型“....Excel._Application”