gpt4 book ai didi

c# - 如何实现类型和大小

转载 作者:太空狗 更新时间:2023-10-29 22:22:32 25 4
gpt4 key购买 nike

我想知道typeofsizeof 关键字是如何实现的。

如果我想实现我自己的 'x'of() 表达式怎么办,比如 timeof(object) 其中 object 包含一个 DateTime 作为它的属性之一还是什么?

最佳答案

简短的回答是否定的。 typeofsizeof 是 C# 语言的一部分,您不能(直接)添加类似它们的表达式。执行您所要求的正常方法是简单地访问该属性:

DateTime time = myObject.SomeDateTimeProperty;

您可以创建一个方法来执行此操作(尽管对于这种微不足道的事情来说它没有任何意义)。例如。如果你使用了一个接口(interface):

public interface ICreateTime
{
DateTime CreateTime { get; }
}

public DateTime TimeOf(ICreateTime myObject)
{
return myObject.CreateTime;
}

更具体地说:typeofsizeof实现与您实现方法的方式不同。相反,typeof 转换为 ldtoken [type]调用 System.Type.GetTypeFromHandle IL instructions ,并且 sizeof 变成一个常量。例如

Type t = typeof(int);
int s = sizeof(int);

编译为:

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

关于c# - 如何实现类型和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22413858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com