C# 在集合方法中解析

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

我知道这可能是一个简单的问题,但我想知道在C语言中,将set方法中的传入字符串解析为int的最佳方法是什么,例如,如果我有 公共int foo{get;set;}

在集合中,我想解析传入的字符串

您的意思是这样的吗

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,将其分配给属性,而不是属性本身。为什么属性要处理您的无效输入?