获取/设置为不同类型

时间:2011-03-22 19:27:56

标签: c# .net properties

我想定义一个接受SET中字符串的变量,然后将其转换为Int32并在GET期间使用它。

这是我目前的代码:

private Int32 _currentPage;

public String currentPage
{
   get { return _currentPage; }
   set 
   {
      _currentPage = (string.IsNullOrEmpty(value)) ? 1 : Convert.ToInt32(value);
   }
}

4 个答案:

答案 0 :(得分:10)

我建议使用明确的Set方法:

private int _currentPage;

public int CurrentPage
{
    get
    {
        return _currentPage;
    }
}

public void SetCurrentPage(string value)
{
        _currentPage = (string.IsNullOrEmpty(value)) ? 1 : Convert.ToInt32(value);
}

作为旁注,您的解析方法可能会做得更好:

if (!int.TryParse(value, out _currentPage)
{
    _currentPage = 1;
}

这可以避免格式化异常。

答案 1 :(得分:3)

请注意,拥有一个属性获取&设置用于不同类型。可能有几种方法更有意义,而传递任何其他类型只会炸毁这个属性。

public object PropName
{
    get{ return field; }
    set{ field = int.Parse(value);            
}

答案 2 :(得分:0)

你拥有的是它需要的方式。没有像您正在寻找的自动转换。

答案 3 :(得分:0)

使用魔法获取和设置块,你别无选择,只能选择你返回的相同类型。在我看来,处理它的更好方法是让调用代码进行转换,然后将类型设为Int。