gpt4 book ai didi

c# - 用于实现的常量字符串的最佳实践

转载 作者:IT王子 更新时间:2023-10-29 04:46:45 26 4
gpt4 key购买 nike

假设我有一个接口(interface):

public interface IFeature
{
Task execFeature();
}

和两个实现:

public class FirstFeature : IFeature
{
private IWebApi webApi;
public FirstFeature(IWebApi webApi)
{
this.webApi = webApi;
}

public async Task execFeature()
{
string response = await webApi.getClassName();
IResult result;
if(response==null)
result = new TextResult("Error accessing api - check internet connection/api address");
else
result = new TextResult("Hello dear user – the selected class name is " + response);
result.display();
}
}

public class SecondFeature : IFeature
{
private IWebApi webApi;
public SecondFeature(IWebApi webApi)
{
this.webApi = webApi;
}

public async Task execFeature()
{
List<string> classNames = new List<string>();
var classNameTasks = Enumerable.Range(1, 3).Select(i => webApi.getClassName()).ToArray();
classNames.AddRange((await Task.WhenAll(classNameTasks)));
IResult result;
if (classNames[0] == null)
result = new TextResult("Error accessing api - check internet connection/api address");
else
result = new TextResult("Hello dear user – we’ve selected three new class names for you, and they are " + classNames[0] + ", " + classNames[1] + ", and " + classNames[2]);
result.display();
}
}

如您所见,在这两种实现中,我必须执行 result = new TextResult("Error accessing api - check internet connection/api address"); 行报告错误。

OOP/Good Design 中的最佳实践是什么来拥有一个常量 error_string 我可以在我的所有实现中访问?

现在的样子,代码是重复的。

最佳答案

我认为没有最佳实践。这只是一个偏好问题。

我将常量存储在静态类中。

public static class Constants
{
public static class Messages
{
public const string Error = "Error accessing api...";
public const string Hello = "Hello ...";
}
}

用法

var result = new TextResult(Constants.Messages.Error);

仅供引用:一些开发者更喜欢 Enum。

关于c# - 用于实现的常量字符串的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com