【问题标题】:How best to handle and expose Converted Value inside my class如何最好地在我的课堂上处理和公开转换后的值
【发布时间】:2009-03-18 11:38:21
【问题描述】:

在我后面的代码中,我从单选按钮列表中的选定索引中获取一个值。

问题是,在某些情况下我需要将其用作字符串,但在其他情况下我需要将其转换为 Int32 以便在某些方法中使用。

是不是更好:

使用属性转换为 int(以后可能重用) 转换为 int 仅在此时需要它的一个方法中

我认为私有属性将允许在内部跨多个方法重用。但是,如果只有一个方法真的需要它是一个整数,并且该方法通过在该方法中将其作为字符串参数传递而在几次调用中使用它,则只需在该方法中进行转换,而忘记将其公开为私有属性假设有人可能希望稍后在此代码中的其他方法中使用它。

【问题讨论】:

    标签: c# architecture


    【解决方案1】:

    我认为这是模型视图控制器。视图将此值视为字符串,但模型中值的实际类型是整数。因此,您应该将其存储为整数,然后根据模型客户端的需要将其转换为字符串视图。

    【讨论】:

    • 我不是在问如何使用模型将其存储在数据库中。这纯粹是在我的代码隐藏中保存转换以供重用的方式和位置。我现在只有一种方法需要将其用作整数(因为它会将其发送回模型以插入数据库中以获取我们存储的值)。
    • 让我解释得更好。我在我的代码隐藏中从单选按钮列表中获取选定的索引值:_someID = rblMyRadiobuttonList.SelectedValue;其中 _someID 是一个字符串,因为 SelectedValue 返回 SelectedText 后面的值。
    • 所以我需要在课堂上的各种方法中使用 selectedvalue 作为字符串和整数。我想将转换为整数作为属性公开,以便现在和以后在内部重用。
    • 请注意,_someID 是我的代码隐藏中的私有字符串字段,在点击事件中设置
    • “模型”不一定是指数据库,而是指代码中的模型层。该原则仍然适用,将值以其规范格式存储为整数,然后让那些需要它作为字符串的方法进行自己的转换。
    【解决方案2】:

    最好转换为 int [并将其公开为] 属性

    一般来说,我会将值表示为我可以放入的最具体的类型。

    如果该值始终具有整数表示,则只需将其表示为整数属性。如果有人需要将其用作string,他们可以自己致电.ToString() 将其转换回来。

    private void UpdateValue()
    {
       _selectedValue = Int32.Parse(GetSelectedValue());
    }
    
    private int _selectedValue;
    
    public int SelectedValue
    {
       get { return _selectedValue; }
    }
    

    在许多情况下,使用您的代码的人甚至不需要调用.ToString(),例如:

    string description = string.Format("Selected Value: {0}", obj.SelectedValue);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2011-04-04
      • 2012-11-02
      相关资源
      最近更新 更多