public class Cavity
{
public double X { get; set; }
public double Y { get; set; }
public double Angle { get; set; }
public override string ToString()
{
return X.ToString() + "," + Y.ToString() + "," + Angle.ToString();
}
}
public class Setting
{
protected ConcurrentDictionary<string, string> settingMap = new ConcurrentDictionary<string, string>();
private Cavity _cavity = new Cavity();
[TypeConverter(typeof(ExpandableObjectConverter))]
public Cavity Cavity1
{
get
{
//return _cavity;
return ConvertStr2Object(settingMap["Cavity1"], ',');
}
set
{
//_cavity = value;
settingMap["Cavity1"] = ConvertObject2Str(value, ',');
}
}
}
我需要在修改X、Y、Angle 对应执行Cavity1低下的Set,但在实际是无法执行的, Setting低下的Cavity属性还会有多个,比如Cavity2,Cavity3等 帮忙看下咋解决呢 谢谢
解决以上的问题,我想的是讨巧的办法
namespace Paramsss
{
[TypeConverter(typeof(ExpandableObjectConverter))]
public class Cavity
{
public Cavity(string str)
{
Name = str;
}
[Browsable(false)]
public string Name { get; set; }
public double X
{
get
{
return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',',0);
}
set
{
Globals.Setting1.settingMap[Name] =Globals.Setting1.ConvertDouble2Str(value,Y,Angle,',');
ToString();
}
}
public double Y
{
get
{
return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',', 1);
}
set
{
Globals.Setting1.settingMap[Name] = Globals.Setting1.ConvertDouble2Str(X, value, Angle, ',');
ToString();
}
}
public double Angle
{
get
{
return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',', 2);
}
set
{
Globals.Setting1.settingMap[Name] = Globals.Setting1.ConvertDouble2Str(X, Y, value, ',');
ToString();
}
}
public override string ToString()
{
return "X="+X.ToString() + ", Y=" + Y.ToString() + ", Angle=" + Angle.ToString();
}
}
public class Setting
{
private Cavity _cavity1 = new Cavity("Cavity1");
private Cavity _cavity2 = new Cavity("Cavity2");
private Cavity _cavity3 = new Cavity("Cavity3");
private Cavity _cavity4 = new Cavity("Cavity4");
private Cavity _cavity5 = new Cavity("Cavity5");
private Cavity _cavity6 = new Cavity("Cavity6");
private Cavity _cavity7 = new Cavity("Cavity7");
private Cavity _cavity8 = new Cavity("Cavity8");
public Cavity Cavity1
{
get
{
return _cavity1;
}
set
{
_cavity1 = value;
}
}
public Cavity Cavity2
{
get
{
return _cavity2;
}
set
{
_cavity2 = value;
}
}
public Cavity Cavity3
{
get
{
return _cavity3;
}
set
{
_cavity3 = value;
}
}
public Cavity Cavity4
{
get
{
return _cavity4;
}
set
{
_cavity4 = value;
}
}
public Cavity Cavity5
{
get
{
return _cavity5;
}
set
{
_cavity5 = value;
}
}
public Cavity Cavity6
{
get
{
return _cavity6;
}
set
{
_cavity6 = value;
}
}
public Cavity Cavity7
{
get
{
return _cavity7;
}
set
{
_cavity7 = value;
}
}
public Cavity Cavity8
{
get
{
return _cavity8;
}
set
{
_cavity8 = value;
}
}
public ConcurrentDictionary<string, string> settingMap = new ConcurrentDictionary<string, string>();
public double ConvertStr2Double(string str, char c, int v)
{
try
{
string[] ss = str.Split(c);
return Convert.ToDouble(ss[v]);
}
catch
{
return 0;
}
}
public string ConvertDouble2Str(double x, double y, double angle, char c)
{
try
{
return x.ToString() + c + y.ToString() + c + angle.ToString();
}
catch
{
return "";
}
}
}
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。