gpt4 book ai didi

c# - 访问私有(private)字段

转载 作者:IT王子 更新时间:2023-10-29 04:47:01 34 4
gpt4 key购买 nike

是否可以获取或设置私有(private)字段?

我想要获取 System.Guid.c。有没有办法访问它,或者我应该只从 strut 复制代码并将字段公开?

最佳答案

您可以按照 Quantic Programming 的建议使用反射

var guid = Guid.NewGuid();
var field= typeof (Guid).GetField("_c", BindingFlags.NonPublic |BindingFlags.GetField | BindingFlags.Instance);
var value = field.GetValue(guid);

尽管如果您可以先将 guid 转换为字节数组,我可能会建议:

var guid = Guid.NewGuid();
var c = BitConverter.ToInt16(guid.ToByteArray(), 6);

后一种方法避免使用反射。

编辑

你提到需要能够设置值,你仍然可以避免反射:

var guid = Guid.NewGuid();
var guidBytes = guid.ToByteArray();

// get value
var c = BitConverter.ToInt16(guidBytes, 6);

// set value
Buffer.BlockCopy(BitConverter.GetBytes(c), 0, guidBytes, 6, sizeof(Int16));
var modifiedGuid = new Guid(guidBytes);

关于c# - 访问私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862747/

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