EHo*_*ski 3 c# sharepoint sharepoint-2010
我一直在阅读SharePoint 2010的工作,我注意到我从书籍到教学视频遇到的许多代码示例都是以我从未在C#中存在的方式构建SharePoint对象(并且认为是VB独有的):
SPWeb web = properties.Feature.Parent as SPWeb;
我习惯于以这种方式进行(在VB之外)进行投射,(SPWeb)properties.Feature.Parent并且只是好奇,如果有任何特殊原因,我遇到的SharePoint上的大多数部分都使用VB-esque强制转换符号.
as在C#中称为安全转换运算符.这与正常演员之间存在语义差异.如果类型无法转换,安全转换将不会抛出异常; 它将返回null.InvalidCastException如果无法转换类型,则抛出普通转换.
换句话说,null如果父类型不是SPWeb类型,则此代码分配:
SPWeb web = properties.Feature.Parent as SPWeb;
Run Code Online (Sandbox Code Playgroud)
如果Parent的类型不正确,则抛出另一个版本:
SPWeb web = (SPWeb)properties.Feature.Parent;
Run Code Online (Sandbox Code Playgroud)
as如果您不确定某个对象是否可以转换为所需类型,则该运算符非常有用 - 在这种情况下,通常使用as然后检查null.as仅适用于引用类型,因为值类型不能为null.
顺便说一句,VB中的等效运算符是TryCast(对DirectCast).