C#属性.多个SET输入类型

Tom*_*lar 2 c# properties operator-overloading set

我有一个看起来像这样的房产

private int clientID;

    public int ClientID
    {
        get { return clientID; }
        set { clientID = value; }
    }
Run Code Online (Sandbox Code Playgroud)

我希望能够将一个字符串传递给这个属性,以便setter将它转换为我.我怎么做?

我知道如何进行转换,我只需要知道如何在不抛出类型错误的情况下传递字符串.

谢谢,

汤姆

Jon*_*eet 8

基本上你不能.选项:

  • 将ClientID的第二个属性作为文本(由同一字段支持)
  • 有一个单独的方法(例如SetClientID(string))
  • object根据传入的值更改属性类型并执行不同的操作(urgh - 请不要这样做!)

  • 还有第四种选择.将属性类型更改为自定义类型并提供隐式转换运算符.它与*urgh属于同一类别 - 请不要这样做*,但我想我应该提一下. (3认同)
  • 来吧乔恩,让我们回答一些问题=) (2认同)

Dar*_*rov 2

您不能将字符串传递给声明为整数的属性。您可以使用一种方法来代替。