草庐IT

字段别名

全部标签

c# - 使用反射来确定哪些字段是属性的支持字段

我正在使用反射来映射对象。这些对象在托管代码中,但除了通过反射之外,我看不到它们的源代码、底层结构等。所有这一切的首要目标是一个对象的基本内存映射(在功能上类似于SOS.dllDumpObject和!ObjSize命令)。因此,我试图确定哪些成员被“重复计算”为字段和属性。例如:publicclassCalendarEntry{//privatepropertyprivateDateTimedate{get;set;}//publicfieldpublicstringday="DAY";}当映射显示时:字段天k__BackingField属性日期像这样的类在哪里:publicclass

c# - 使用 Control+Plus 的快捷方式创建 MenuItem – 使用反射修改 MenuItem 的私有(private)字段是最好的方法吗?

我正在使用旧版MainMenucontrol(withMenuItems)controlinanapplication,andwouldliketoimplementzoominandzoomoutmenuitems(withControl++和Control+-键盘快捷键)。(请注意,我使用的是MainMenu而不是MenuStrip)。MenuItem确实有一个Shortcut属性,类型Shortcut,但它没有CtrlPlus选项。我决定看看如何Shortcutwasimplementedinthereferencesource,看起来每个枚举值只是几个Keys的组合枚举值(例如

c# - 如何序列化原始 json 字段?

我在数据库中有一个存储json字符串的字段我希望当我在json结果中返回它时,它将作为json原始数据返回,而不是用引号作为字符串扭曲。更新1(更多信息):如果您查看图像字段,它包含一个原始的json字符串值但是在用JsonResult序列化它之后,它会被引号扭曲,因为它是一种字符串,我如何告诉序列化程序将图像字段视为原始json数据?vardb=newModelsContainer();varres=db.Images.OrderByDescending(i=>i.DateCreated).Skip(skip).Take(take).Select(i=>new{id=i.Id,dat

C# 6 自动初始化属性和支持字段的使用

在C#6之前,属性的初始化不使用支持字段来初始化默认值。在C#6中,它使用支持字段来初始化新的Autoinitializationproperties.我很好奇为什么在C#6之前IL使用属性定义来初始化。这有什么具体原因吗?还是在C#6之前没有正确实现?C#6.0之前publicclassPropertyInitialization{publicstringFirst{get;set;}publicstringLast{get;set;}publicPropertyInitialization(){this.First="Adam";this.Last="Smith";}}编译器生成的

c# - 在结构中分配字段/属性

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:ModifyStructvariableinaDictionary为什么会这样MyStructtest=newMyStruct();test.Closed=true;效果很好,但是MyDictionary[key].Closed=true;在编译时显示“无法修改表达式,因为它不是变量”错误?为什么这两种情况下的分配不同?备注:MyDictionary类型为结构代码:publicstructMyStruct{//OthervariablespublicboolIsclosed;publicboolClosed{

c# - 为什么可以只使用别名来声明枚举而不是 .NET 类型?

这很完美..publicenumNodeType:byte{Search,Analysis,Output,Input,Audio,Movement}这会返回编译器错误...publicenumNodeType:Byte{Search,Analysis,Output,Input,Audio,Movement}使用反射时也会发生同样的情况...那么,有人知道为什么enum-base只是一个整型吗? 最佳答案 可能它只是一个不完整的编译器实现(虽然有记录)。从技术上讲,这也应该有效,但事实并非如此。usingx=System.Byte;p

c# - 关于 C# 中常量小数字段的令人困惑的警告

我在探索大量C#教程时尝试使用const修饰符,并在类中放置了一堆const修饰符,但实际上没有在任何地方使用它们:classConstTesting{constdecimalsomedecimal=1;constintsomeint=2;...}对于此类,我收到以下警告(使用csc):ConstTesting.cs(3,19):warningCS0414:Thefield‘ConstTesting.somedecimal’isassignedbutitsvalueisneverused我不明白的是我只收到针对constdecimal的警告。constint不会给我任何警告,无论顺序或

c# - 在 C# 中嵌套别名

我在C#中看到了很多关于typedef问题的答案,我已经使用过,所以我有:usingFoo=System.Collections.Generic.Queue;这很好用。我可以更改定义(尤其是更改Bar=>Zoo等)并且使用Foo的所有内容都会更改。太好了。现在我想让它工作:usingFoo=System.Collections.Generic.Queue;usingFooMap=System.Collections.Generic.Dictionary;但C#似乎不喜欢第二行中的Foo,即使我已经在第一行中定义了它。有没有办法将现有别名用作另一个别名的一部分?编辑:我正在使用VS200

c# - 字段 xxx 从未分配给,并且始终具有默认值 null

有人知道这是什么问题吗?我在privatestaticQuantizerquantit;上收到此警告Fieldxxxisneverassignedto,andwillalwayshaveitsdefaultvaluenull我不知道该怎么做才能修复,因为当我尝试使用quantit.Quantize()时debug说:“对象引用未设置到对象的实例。”并指向au=quantit.Quantize();代码:publicclassQuantization:System.Windows.Forms.Form{privatestaticQuantizerquantit;privateButton

c# - 如何通过反射判断字段是否有 'new'修饰符?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowdoIdetectthe"new"modiferonafieldusingreflection?有如下声明publicclassB:A{publicnewstringName;}我如何确定该字段的FieldInfo实例是否具有"new"修饰符?