Aar*_*ide 5 c# type-conversion
可能重复:
转换:( NewType)与Object对象作为NewType
Casting vs使用CLR中的'as'关键字
//var gridView = (gridViewRow.NamingContainer as GridView); <-- works too
var gridView = (GridView)gridViewRow.NamingContainer;
Run Code Online (Sandbox Code Playgroud)
我对此的不完全理解是使用as关键字可以null在使用强制转换()时抛出异常.我的目标是能够问自己"我应该选择哪种方式?" 并知道如何回答它.
这取决于,但基本上:
如果你知道并且可以保证对象是你认为它的类型那么使用().
如果它可能是其他东西,那么使用as并检查null.在这种情况下,你有:
var realThing = someObject as MyClass;
if (realThing != null)
{
....
}
Run Code Online (Sandbox Code Playgroud)
您可以使用is以防止()导致:
if (someObject is MyClass)
{
var realThing = (MyClass)someObject;
....
}
Run Code Online (Sandbox Code Playgroud)
但这导致两次转换,而不是as直接转换().
这就是"它依赖"的地方.你必须根据具体情况决定哪个更合适.您可能还需要遵守编码标准.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |