Tag: typedreference

TypedReference为什么在幕后? 这是如此的快速和安全…几乎是神奇的!

警告:这个问题有点邪教…宗教程序员总是遵守良好的做法,请不要读它。 🙂 有谁知道为什么使用TypedReference是如此的气馁(隐含,由于缺乏文档)? 我发现它有很好的用处,比如当通过不应该是generics的函数传递generics参数时(如果你需要一个值types,使用object可能是矫枉过正或慢),当你需要一个不透明的指针时,或者当您需要快速访问数组的元素时,您可以在运行时查找其规格(使用Array.InternalGetReference )。 由于CLR甚至不允许这种types的不正确的使用,为什么不鼓励? 它似乎不是不安全或任何东西… 我发现TypedReference其他用途: C#中的“专门化”generics(这是types安全的): static void foo<T>(ref T value) { //This is the ONLY way to treat value as int, without boxing/unboxing objects if (value is int) { __refvalue(__makeref(value), int) = 1; } else { value = default(T); } } 编写与generics指针一起工作的代码(如果误用,这是非常不安全的,但是如果使用正确的话,则是快速和安全的): //This bypasses the restriction that you can't have a […]