当前位置: 首页 > 编程语言 > C#

在Settings.settings中允许Nullableint类型?Share

时间:2023-04-10 13:42:38 C#

是否允许在Settings.settings中使用Nullableint类型?我有一个属性int我想输入int?在我的Settings.settings文件中。当我使用int?我遇到运行时失败:System.NullReferenceException:对象引用未设置为对象的实例。我可以使用字符串类型作为解决方法,在其中检查null有效,但我必须解析字符串并在解析句柄中不工作时的错误。能够将值设置为null允许我将属性保存在设置文件中,同时显然不设置任何值。未设置时,我使用编程的默认值:int?configuredNumberOfLimits=Settings.Default.RequiredNumberOfLimits;如果(configuredNumberOfLimits==null){requiredNumberOfLimits=DEFAULT_REQUIRED_NUMBER_LIMITS;我认为你最好的选择是成为一个老式的bool/int组合。这不是最漂亮的解决方案,但它与int真的没有区别吗?.intconfiguredNumberOfLimits;如果(Settings.Default.HasRequiredNumberOfLimits){configuredNumberOfLimits=Settings.Default.RequiredNumberOfLimits;}else{configuredNumberOfLimits=DEFAULT_REQUIRED_NUMBER_LIMITS;有一种方法可以设置它需要一些使用-null?able类型的设置)(手动编辑,但它在VS环境和代码中都可以正常工作。并且不需要额外的功能或包装器。要做到这一点,使用所需名称(例如RequiredNumberOfLimit)创建一个设置,并将其设为任意类型(例如,为方便起见,标准int)。保存更改。现在转到项目文件夹并使用文本编辑器(例如,记事本)打开“PropertiesSettings.settings”文件,或者您可以通过在解决方案资源管理器中右键单击“->Properties--”在VS中打开它。>Settings.settings”,选择“打开方式...”,然后选择“XML编辑器”或“源代码(文本)编辑器”。在打开的xml设置中找到您的设置(看起来像这样):0更改“System.Int32的Type"参数为System.Nullable。同时清除默认值(因此可以默认使用null)。该部分现在应该如下所示(注意类型字符串中使用<和>来指示和>符号-这是为了正确解析VS的xml):现在保存更改并重新打开项目设置-瞧!-我们的设置RequiredNumberOfLimit是System.Nullable类型,它被VS设置设计器正确解析,并且它作为一个plainint?代码中的变量。如果你希望这个设置能够返回null,你应该保持默认值字段清晰。否则,如果这个值之前已经被设置为null,这个设置将返回默认值(但是这是默认值,不是吗?:P)。怎么样:intconfiguredNumberOfLimits然后设置默认值。不要担心字符串或解析或未处理的异常。可以在Settings.Designer.cs中手动设置类型例如:以上是C#学习教程:AllowNullableinttypeinSettings.settings?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注---publicdecimal?测试{get{return((decimal?)(this["Test"]));}设置{这个["测试"]=值;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: