我想知道如何实现typeof和sizeof关键字.
如果我想实现我自己什么'x'of()表情好像timeof(object)在那里object含有DateTime作为它的一个特性还是什么?
Tim*_* S. 10
最简洁的答案是不.typeof并且sizeof是C#语言的一部分,你不能(直接)添加像它们这样的表达式.做你正在问的正常方法是简单地访问该属性:
DateTime time = myObject.SomeDateTimeProperty;
Run Code Online (Sandbox Code Playgroud)
你可以制定一个方法来做到这一点(虽然这对于这么简单的事情没有意义).例如,如果您使用了界面:
public interface ICreateTime
{
DateTime CreateTime { get; }
}
public DateTime TimeOf(ICreateTime myObject)
{
return myObject.CreateTime;
}
Run Code Online (Sandbox Code Playgroud)
更具体地讲:typeof和sizeof不执行你实现方法一样.相反,typeof转换为ldtoken [type]和call System.Type.GetTypeFromHandle IL指令,并sizeof成为常量.例如
Type t = typeof(int);
int s = sizeof(int);
Run Code Online (Sandbox Code Playgroud)
编译为:
IL_0001: ldtoken System.Int32
IL_0006: call System.Type.GetTypeFromHandle
IL_000B: stloc.0 // t
IL_000C: ldc.i4.4 // the constant 4, typed as a 4-byte integer
IL_000D: stloc.1 // s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |