哪个是在C#中以相同方法返回多个字符串的最佳方法

时间:2016-07-01 20:34:54

标签: c# methods

以下是该方法的一个示例。由于此方法用于多个组件,因此我无法将字符串类型更改为数组。我试图做的就是返回两个字符串。这可能吗?

protected override string getSourceName()
{
    return "ConditionalSymbology.InsertSymbologyRuleData";
}

2 个答案:

答案 0 :(得分:0)

不,在不更改功能的情况下无法返回两个字符串。您可以根据逗号或其他内容(例如value1,value2value1:value2)返回一个调用者将尝试解释的字符串。

但它总是一个字符串。如果另一个方法调用此函数,则需要知道它必须将该字符串拆分为多个字符串,以及该字符串的每个部分的含义。

所以简短的回答是,除非你改变它返回的内容,否则函数无法返回两个字符串。

这提出了一个大问题:你说你不能改变它,因为它已经被其他方法调用了。如果您无法更改这些方法,那么如果您更改返回到这些方法的值会发生什么?他们过去常常得到一个字符串,但现在他们得到一个包含多个值的字符串。

所以你所能做的就是编写你需要的函数,让它返回它需要返回的函数。也许您现有的代码可以继续调用旧函数,新代码可以调用新函数。

答案 1 :(得分:0)

嗯,你应该解决的主要问题(因为现在你正试图解决XY-problem)是糟糕的对象设计。您有一种方法在某些情况下返回一个string,在其他情况下返回字符串集合。

您应该重新设计您的类,以便在不同的场景中获得必要的返回值。如果当前类具有公共代码,则可以将其封装在受保护的方法中。

如果您在外部组件中使用当前体系结构,则可以使用版本控制而无需向后兼容,以便在现有代码中使用旧库,而在新组件中使用新库。

这是一个非常普遍的问题,但您可以尝试在https://codereview.stackexchange.com/中提出这个问题。