自动实现属性中的私有变量在哪里/是什么?没有(显式)引用firstName应该隐藏的firstName私有变量。你能解释一下这是怎么回事吗?我假设有一些私有变量被获取和设置。谢谢。//自动实现的属性FirstNamepublicstringFirstName{get;放;基本上,编译器将您的代码转换为以下内容:privatestringfirstName;publicstringFirstName{get{returnfirstName;}set{firstName=value;}}这不太可能是确切的名称,但在名称中使用尖括号很重要-因为它使它成为一个难以描述的名称。(这是一个非官方的术语,但被广泛使用——我不知道EricLippert是否真的创造了它,或者他是否只是第一个在我读到的东西中使用它的人。)它不是一个有效的C#标识符说明符,但是CLR非常高兴。这有两个好处:它对所有其他生成的代码使用相同的技术——匿名类型、匿名函数、迭代器块等。是的,编译器创建一个私有的、匿名的支持字段,只能通过属性的get和set访问器访问.(c)msdn编辑:定义属性时,编译器发出2个方法:get_XXX和set_XXX。当C#编译器看到尝试获取或设置属性的代码时,编译器实际上会发出对这些方法之一的调用。(c)“通过C#CLR”C#编译器在幕后创建后备存储字段,您可以尝试对其进行反编译。使用反射器。您将了解它如何创建支持字段。这是相同的答案MSDNAuto-implementedpropertiesAuto-implementedproperties其他人已经回答了这个问题,但更多信息......您可以使用反射在运行时查找支持字段。查找名为>k__BackingField的字段。另一篇可能有帮助的帖子:以上是C#学习教程:Where/Whatareprivatevariablesinauto-implementedproperties?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
