草庐IT

字段别名

全部标签

c# - 是否可以使用 C#7 绑定(bind)到 WPF 中的 ValueTuple 字段

如果我有一个viewmodel属性public(stringMdf,stringMdfPath)MachineDefinition{get;set;}我尝试在XAML/WPF中绑定(bind)它或同样的错误我看到ValueTuple字段实际上是字段而不是属性。这是问题所在吗? 最佳答案 令人困惑的是,对于旧式元组(C#7之前),所有项目都是属性https://msdn.microsoft.com/en-us/library/dd386940(v=vs.110).aspx因此可绑定(bind)。对于ValueTuple,它们是字段ht

c# - 按默认值初始化字段是多余的

我真的可以信任.NET来初始化字段(如整数、结构等)吗?如果我仍然想初始化这些字段怎么办-会有什么影响? 最佳答案 C#specificationp.305(17.4.4)上的状态Theinitialvalueofafield,whetheritbeastaticfieldoraninstancefield,isthedefaultvalue(§12.2)ofthefield’stype.Itisnotpossibletoobservethevalueofafieldbeforethisdefaultinitializationha

c# - 为什么我应该使用自动实现的属性而不是字段?

两者之间:具有属性:classWithProperty{publicstringMyString{get;set;}}带字段:classWithField{publicstringMyString;}显然我应该选择第一个。为什么?我听说这里的重点是允许接口(interface)更改,但是如果我有第二个,并将其更改为第一个,则不应使用其他代码永远必须改变。重新编译时,一切都会指向属性(property)代替。我是不是漏掉了什么重要的东西? 最佳答案 最重要的区别在于,如果您使用一个字段,然后需要将其更改为一个属性(例如,强制执行某些验

c# - 修改多个字符串字段

我有以下代码:classSearchCriteria{publicstringName{get;set;}publicstringEmail{get;set;}publicstringCompany{get;set;}//...around20fieldsfollowpublicvoidTrim(){if(!String.IsNullOrEmpty(Name)){Name=Name.Trim();}if(!String.IsNullOrEmpty(Email)){Email=Email.Trim();}//...repeatforall20fieldsintheclass.}}我想写一

C# 反射 - 派生类型中的基类静态字段

在C#中,当我反射(reflect)派生类型时,为什么看不到基类的静态字段?我已经尝试了type.GetFields(BindingFlags.Static)和type.GetFields()。 最佳答案 这就是它的工作原理。static成员实际上是非面向对象的东西。它们不是多态的,它们确实属于它们的声明类型,并且与继承层次结构中的其他类型无关。例如,在访问派生类中的静态成员之前,不需要运行基类的静态初始化程序。除非指定了BindingFlags.FlattenHierarchy,否则不会返回基类的static成员:type.Get

C#静态字段、实例构造函数

我遇到了一个我想了解的C#行为。考虑这样一个类:publicclassSomeSingleton{publicstaticSomeSingletonDefault=newSomeSingleton();privatestaticintfield=0;privateSomeSingleton(){field=1;}publicintGetField(){returnfield;}}现在,让我们调用GetField()方法:varfield=SomeSingleton.Default.GetField();我得到0就好像跳过了实例构造函数一样。为什么? 最佳答案

c# - C# 中的类型/命名空间别名约定

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.5年前关闭。Improvethisquestion是否有任何既定的命名或编码约定来定义namespaceortypealiases在C#中?对于那些不知道的人,C#语言有一个特性,可以在本地为命名空间和类型的文件定义别名。当与第三方库存在命名冲突以及缩短代码中的类型名称时,这会很有用。下面是它的外观示例。usingForms=System.Windows.Forms;我在网上看到的大多数示例都倾向于使用未缩写的大写名称作为别名,例如别

c# - 当为输入字段 asp.net mvc 输入不正确的数据类型时覆盖错误消息(值 'xxx' 对 Age 无效)

当在HTML表单的输入字段中输入不正确的数据类型时,我试图覆盖错误消息。例如我有这样的模型。publicclassPerson{publicstringFirstName{get;set;}publicintAge{get;set;}}为了查看,我输入了Age的文本以获取它的值。当在Age文本框中键入一些字符串时,例如“test”,然后按提交按钮。我收到此错误消息值'xxx'对年龄无效但是,我想更改此消息并尝试多种方法。这个消息值没有任何影响。请你帮我解决这个问题。 最佳答案 在花了几个小时环顾四周后,我发现没有人真正对此有合适的答

c# - 如何禁止使用字段而不是属性?

这个问题在这里已经有了答案:Moreprivatethanprivate?(C#)(20个答案)关闭8年前。我的类中有一个属性在set访问器中有很多逻辑:privateStringtext;publicStringText{get{returntext;}privateset{//someactionswithavaluevalue=value.Replace('a','b');text=value;}}如何防止其他开发人员(甚至我)更改此类中的field而不是property?如果有人这样写:publicTest(Stringtext){this.text=text;}它会破坏我的类

c# - 为什么应该使用 C# 预定义类型而不是系统命名空间中的别名

在JuvalLowy的“C#编码标准”中,可从www.idesign.net获得,建议使用C#预定义类型而不是System命名空间中的别名,例如:object不是Objectstring不是Stringint不是Int32这样做有什么好处?它们有何不同?我在自己的编码中遵循了这个建议,但不知道它们有何不同。 最佳答案 它们意外不同的主要时间是当某人愚蠢到调用类型(或属性/字段/等)String(例如)时,因为string始终指的是global::System.String,其中String可能是YourNamespace.Strin