在 C# 中使用字符串 属性 值作为另一个 class 的声明实例

Use a string property value as another class's declared instance in C#

我想使用 Order class 的 MarketSymbol 属性 的值来调用 Market class 中的方法,

Order class 是:

public class Order
{
    public string MarketSymbol { get; set; }
}

MarketSymbol 恰好是 ETH_USDTBTC_USDT.

它们是 Market class,

的确切实例
var ETH_USDT = new Market();
var BTC_USDT = new Market();

所以在尝试调用 Market 中的方法时,它是:

public class Market
{
    public Market()
    {
         // some code
    }


    public SimpleMethod()
    {
        // some code
    }
}

我想用MarketSymbol的值调用Market里面的方法class

这是因为我不想使用 switch case 或多个 if 条件, 我也想知道这样做是否错误

如果我没理解错的话,我想你可以制作一个市场字典,其中的键是一个字符串。

考虑示例:

// Your class with some functions

public class Market
{
    public Market()
    {

    }

    public void SomeMethod()
    {

    }
}

创建您的 Market 对象并填充字典。在这里,您可以使用要用于 MarketSymbol:

的字符串
Market BTC_USDT = new Market();
Market ETH_USDT = new Market();

Dictionary<string, Market> Markets = new Dictionary<string, Market>();

Markets.Add("BTC_USDT", BTC_USDT);
Markets.Add("ETH_USDT", ETH_USDT);

现在您可以访问字典中的所有市场,只需将该字符串用作索引器,无需大小写或其他任何内容:

Markets["BTC_USDT"].SomeMethod();