我有一个继承自Result
的班级ResultTable
public class ResultTable : Result
结果是ResultWrapper
的属性。
public class ResultWrapper
{
public Result Result { get; set; }
}
当我这样做时:
ResultTable myCastedItem = myResult.Result as ResultTable;
我收到myCastedItem
中的项目,但我想直接这样做:
If ( (ResultTable)myResult.Result.DataRows) // It does not let me.
DataRows
是ResultTable
的成员,但不是Result
的成员。
答案 0 :(得分:2)
你只是缺少一些大括号:
if (((ResultTable)myResult.Result).DataRows) // It will let you ;-).
答案 1 :(得分:1)
你投错了财产。
(ResultTable)myResult.Result.DataRows
您需要将其更改为:
((ResultTable)myResult.Result).DataRows
答案 2 :(得分:0)
你需要用这样的大括号包围你的演员:
((ResultTable)myResult.Result).DataRows
或者你可以使用安全演员(请记住,因为可以返回null):
var casted = (myResult.Result as ResultTable);
if(casted!=null)
casted.DataRows;
或者,使用c#6。操作者:
(myResult.Result as ResultTable).?DataRows