C# 在集合方法中解析
我知道这可能是一个简单的问题,但我想知道在C语言中,将set方法中的传入字符串解析为int的最佳方法是什么,例如,如果我有 公共int foo{get;set;} 在集合中,我想解析传入的字符串您的意思是这样的吗C# 在集合方法中解析,c#,string,parsing,int,tryparse,C#,String,Parsing,Int,Tryparse,我知道这可能是一个简单的问题,但我想知道在C语言中,将set方法中的传入字符串解析为int的最佳方法是什么,例如,如果我有 公共int foo{get;set;} 在集合中,我想解析传入的字符串您的意思是这样的吗 private int _foo; public int Foo { get { return _foo; } set { _foo = value; ParseFoo(_foo); } } 但既然你说的是弦 private string _f
private int _foo;
public int Foo
{
get { return _foo; }
set
{
_foo = value;
ParseFoo(_foo);
}
}
但既然你说的是弦
private string _foo;
public string Foo
{
get { return _foo; }
set {
_foo = value;
ParseIncomingString(_foo);
}
}
你是说这个吗
private int _foo;
public int Foo
{
get { return _foo; }
set
{
_foo = value;
ParseFoo(_foo);
}
}
但既然你说的是弦
private string _foo;
public string Foo
{
get { return _foo; }
set {
_foo = value;
ParseIncomingString(_foo);
}
}
因为这个属性是int类型的,所以不能给它分配字符串。因此,在将值分配给属性之前,需要进行此解析
或者,您可以将setter设置为私有,并使用一个接受字符串的公共方法,如果验证成功,您可以在方法内部进行验证,并设置属性。由于属性的类型为int,因此无法为其分配字符串。因此,在将值分配给属性之前,需要进行此解析
或者,您可以将setter设置为私有,并使用一个接受字符串的公共方法,如果验证成功,则在方法集合属性内执行验证。有很多方法可以剥除这只猫的皮。我会这样做的 假设您的财产是:
public int Foo
{
get { return _foo; }
set { _foo = value; }
}
您可以在类上添加一个助手方法:
public void SetFoo(string sFoo)
{
Foo = Convert.ToInt32(sFoo);
}
然后,当需要使用字符串设置值时,可以调用该方法:
myFooObject.SetFoo("4");
有很多方法可以剥这只猫的皮。我会这样做的 假设您的财产是:
public int Foo
{
get { return _foo; }
set { _foo = value; }
}
您可以在类上添加一个助手方法:
public void SetFoo(string sFoo)
{
Foo = Convert.ToInt32(sFoo);
}
然后,当需要使用字符串设置值时,可以调用该方法:
myFooObject.SetFoo("4");
我猜你有一些字符串,你想通过setter把它解析成int。当然,您可以这样做,但属性必须是string
但请记住,如果字符串不是数字,则Int32.Parse会引发异常。在这种情况下,您应该考虑使用哪个选项。 我猜您有一些字符串,您想用SETER将其解析成int。当然,您可以这样做,但属性必须是string
但请记住,如果字符串不是数字,则Int32.Parse会引发异常。在这种情况下,您应该考虑使用哪种方法更好。 < P>我建议您在将set方法自动调用时将其设置为属性之前确保您的值是int。这意味着要设置为属性的字符串应该在设置之前进行解析 如果您想按要求执行,那么只需使用Int32.Parsevalue或Int32.TryParsevalue即可 这两种方法之间的区别在于,如果解析失败,Parsevalue方法会引发异常,这意味着如果要捕获异常,必须使用try-catch块,其中TryParsevalue在解析失败时返回false,在解析成功时返回true
您可以在以下位置阅读更多内容:我建议您在自动调用set方法时将其设置为属性之前,确保您的值是int。这意味着要设置为属性的字符串应该在设置之前进行解析 如果您想按要求执行,那么只需使用Int32.Parsevalue或Int32.TryParsevalue即可 这两种方法之间的区别在于,如果解析失败,Parsevalue方法会引发异常,这意味着如果要捕获异常,必须使用try-catch块,其中TryParsevalue在解析失败时返回false,在解析成功时返回true
您可以在以下位置阅读更多内容:如果属性类型为int,则必须将其设置为int。如果需要从字符串转换,则可以将属性设置为字符串类型,或者让调用方进行转换,或者在类上添加帮助器方法。将单个字符串解析为int与集合有何关系?为什么不使用foo=int.Parsestr;?编辑误解了术语集,您指的是属性的设置者。最好的方法是将其解析为int,将其分配给属性,而不是属性本身。为什么属性要处理无效的输入?如果属性类型为int,则必须将其设置为int。如果需要从字符串转换,则可以将属性设置为字符串类型,或者让调用方进行转换,或者在类上添加帮助器方法。将单个字符串解析为int与集合有何关系?为什么不使用foo=int.Parsestr;?编辑误解了术语集,您指的是属性的设置者。最好的方法是将其解析为int,将其分配给属性,而不是属性本身。为什么属性要处理您的无效输入?