我正在看一些像这样的代码:
var Person = new Person() as IPerson;
执行上述操作是否有任何好处:
IPerson IPerson = new Person();
我能看到的唯一好处是As关键字允许您在编码时遵循var
约定。通常的做法是使用像这样的as关键字来遵循var约定还是有其他好处?
我读过这篇文章:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/as。如果我有一个对象(如示例中所示),我理解使用As
的好处,但是我看不到上面代码的任何好处,所以我必须遗漏一些东西。
答案 0 :(得分:0)
如果类已经实现了接口,则使用as
没有任何好处。实际上不会发生运行时转换操作(它被编译器优化)只有类型将用于推断变量的类型。
As
会有一个好处
object p = new Person();
object o = "Test";
var pp = p as IPerson // will not be null, at runtime p will actually contain a person (even if it declared as object)
var oo = o as IPerson // will be null because the o is actually a string