AS运算符在C#中的用处
可能重复:
直接投射vs'as'运营商?
这个操作员在哪里可以有用? 而不是写这个:
Asset a = new Asset();
Stock s = a as Stock; // s is null; no exception thrown
if (s != null) Console.WriteLine (s.SharesOwned);
你最好写一些抛出的东西。 我看到了很多
(s!= null)
在生产代码中,它确实变得丑陋。 例外情况在这方面更具描述性和自然性。 即使在概念上:如果不是股票,你怎么能没有资产? 如果它不是股票,它应该是个例外。
你最好写一些抛出的东西
不必要。 用户不喜欢看到事情抛出。 你应该编写有效的代码。 如果不是这样,你最好通过向用户道歉来妥善处理。 as
运算符在例如您将尝试进行强制转换以及如果此强制转换不起作用的情况下很有用,可以将该缺省值分配给该变量,以便代码继续使用该缺省值。 这将取决于上下文。
as
确实的is
,如果is
返回false
受让人null
。
听起来像一首歌,但它是答案,我使用它很多,就像在ASP.NET的FindControl方法中一样:
Button myButton = e.item.FindControl("myControlId") as Button;
如果FindControl找到与Button不同的东西,这种赋值不会崩溃或抛出简单赋值null。 我非常喜欢这个......
链接地址: http://www.djcxy.com/p/73737.html