我想定义一个接受SET中字符串的变量,然后将其转换为Int32并在GET期间使用它。
这是我目前的代码:
private Int32 _currentPage;
public String currentPage
{
get { return _currentPage; }
set
{
_currentPage = (string.IsNullOrEmpty(value)) ? 1 : Convert.ToInt32(value);
}
}
答案 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。