中易网

C# Properties.Settings.Default 高分求菜鸟问题

答案:5  悬赏:60  
解决时间 2021-01-14 20:08
C# Properties.Settings.Default 高分求菜鸟问题
最佳答案
你都看到了,这里你调用的是Properties["UID"].DefaultValue,也就是设置了属性的默认值!
这样是不对的,请直接赋值,如Properties["UID"]= txtUID.Text;
你可以看看系统帮你生成的那个属性的代码是怎么赋值的,肯定是这样的:
[UserScopedSettingAttribute()]
public String UID
{
get { return (String)this["UID"]; }
set { this["UID"] = value; }
}
追问:那如果我这样Properties.Settings.Default.Properties["UID"].DefaultValue = txtUID.Text;
赋值一次,那么我在其他的窗口就能调用(程序未关闭的情况下)

Properties.Settings.Default.UID==TextBox1.Text;
Properties.Settings.Default.Save();
这样写的话,那么即使我这次程序关闭了,那么我下次读取的时候直接
MessBox.Show(Properties.Settings.Default.UID);依然能把之前Save的值读取出来···
这是为什么?
追答:因为程序获取配置值得顺序是1、配置文件里保存的值,2、程序设计时指定的默认值。3、都没有就是空。而程序不保存默认值的修改,这个值只能在设计时指定,你设置了DefaultValue也就是默认值,而程序的配置文件里没有值,故而就去取这个默认值了,下次程序关闭,再打开,读取了配置文件,配置文件里没有值,也没有设置默认值,于是就没有值。直到你设置了默认值或值
全部回答
你都看到了,这里你调用的是Properties["UID"].DefaultValue,也就是设置了属性的默认值!
这样是不对的,请直接赋值,如Properties["UID"]= txtUID.Text;
你可以看看系统帮你生成的那个属性的代码是怎么赋值的,肯定是这样的:
[UserScopedSettingAttribute()]
public String UID
{
get { return (String)this["UID"]; }
set { this["UID"] = value; }
}
不知道
追问:fh
追答:什么fh
Properties.Settings.Default.UID=TextBox1.Text;//这句赋值
Properties.Settings.Default.Save();//这句保存
Properties.Settings.Default.Properties["UID"].DefaultValue = txtUID.Text;
这个没保存吧。
数据存放在;项目目录下:Properties/Settings.Settings文件里
追问:Properties.Settings.Default.Properties["UID"].DefaultValue = txtUID.Text;
这个没保存吧。
这个怎么保存?
Properties.Settings.Default.Save();//这句保存
这样保存是保存不起来的,下次读取不到。
追答:DefaultValue 不等于Value,defaultValue是该字段的另外的一个属性:当该字段没有值时,吧DefaultValue付给该字段
你试试:
Properties.Settings.Default.Properties["UID"].DefaultValue = "test";
Properties.Settings.Default.UID = "null";//这句赋值
Properties.Settings.Default.Save();//这句保存
try
{
MessageBox.Show(Properties.Settings.Default.Properties["UID"].DefaultValue.ToString());
}
catch { }
1楼和2楼说的都有道理,DefaultValue和Value不一样,可以在Setting.Designer.cs里看到自动生成的代码是:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("9")]
public int UID {
get {
return ((int)(this["UID"]));
}
set {
this["UID"] = value;
}
}
Value设置的是属性值,DefaultValue设置的是那个DefaultSettingValueAttribute的值,这个是在Reload()是读取的,一般的时候读取的时候是Value,当然设置属性值之后都需要Save(),保存当前属性值。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
万达广场海洋球地址在什么地方,我要处理点事
伯乐的现代意思
请问手机版法语助手怎么查动词变位?我用的是
MSP430串口初始化程序为什么要设置两个晶振?
珠海耀朗假日高尔夫球会地址在哪,我要去那里
7千米50米减3千米500米用小数脱试怎么写?
中国经济在2016年是不是仍然是世界经济引擎
带有六字的诗句
招投标分为那几类?有什么区别?
她是个什么样的女人
5℃与+5℃所表示的温度一样?这句话对不对
一个社区大部分企业都没环评没事,为什么那些
不是教徒,只能说是慕道友,应该做些什么
互联星空电玩地址有知道的么?有点事想过去
OpenGL新手求助 glshadermanager.h是个毛线啊
推荐资讯
方圆少儿书法培训怎么去啊,我要去那办事
洛字换部首还可以加什么偏旁
关于EXO里大势CP灿白爆料的真实来源
陌阡月在黑界收徒多少钱啊?急急急~~~我要做
《镜·双城》最新txt全集下载
苏秦六印归何日,潘岳双毛去值秋 解释一下这
留恋酒馆在哪里啊,我有事要去这个地方
快手ID升级为快手号啦!快手号是你帐号的唯一
请问这是哪里,跪求答案
此石是啥石头,有价值么,求专家解
把123456789分别填入空格得横竖都是15
新闻报到说日出东方进军厨电领域不惜重金从老
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?