在编程接口时,我发现我正在进行大量的转换或对象类型转换.
这两种转换方法有区别吗?如果是,是否有成本差异或这对我的计划有何影响?
public interface IMyInterface
{
void AMethod();
}
public class MyClass : IMyInterface
{
public void AMethod()
{
//Do work
}
// Other helper methods....
}
public class Implementation
{
IMyInterface _MyObj;
MyClass _myCls1;
MyClass _myCls2;
public Implementation()
{
_MyObj = new MyClass();
// What is the difference here:
_myCls1 = (MyClass)_MyObj;
_myCls2 = (_MyObj as MyClass);
}
}
Run Code Online (Sandbox Code Playgroud)
另外,什么是"一般"首选方法?
要检查对象是否属于给定类型C#:
if(myObj is MyClass)
{
//....
}
Run Code Online (Sandbox Code Playgroud)
要检查它是否不是给定类型:
if(!(myObj is MyClass))
{
//....
}
Run Code Online (Sandbox Code Playgroud)
是否有更可读的方式来表达相同的逻辑?
例如,如果我可以写这个,它会更容易阅读.
if(myObj is not MyClass)
{
//....
}
Run Code Online (Sandbox Code Playgroud)