如何确保仅将类中的oncreate
用作方法的参数?显然,我可以使用常规字符串作为方法参数,但这意味着基本上所有内容都可以传递给方法。
一个例子:
static readonly string
我想确保只有using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
public static class Foo
{
public static readonly string Bar = "this is effectively a configuration value";
public static string CoolMethod(string bar)
{
if (bar == "this is effectively a configuration value")
{
return "Here is the info you wanted";
}
else
{
return "no";
}
}
}
static void Main(string[] args)
{
var test = Foo.CoolMethod(Foo.Bar);
Console.WriteLine(test);
Console.ReadKey();
}
}
}
的属性(例如字符串Foo
)可以用作Bar
的参数。该类中可能允许传递多个字符串属性。这可能吗?
用例是将各种模板值传递到一个返回CoolMethod
对象的方法中,但我想限制可以传递的内容,以便可以将模板维护在一个位置,而不是随机地将其写在多个位置地方。
答案 0 :(得分:2)
我将设置一个枚举来表示配置属性,并将其用作方法的参数:
public enum ConfigOption
{
Foo,
Bar
}
private static Dictionary<ConfigOption, string> _configLookup = new Dictionary<ConfigOption, string>
{
{ ConfigOption.Foo, "Foo" },
{ ConfigOption.Bar, "Bar" }
};
public static string CoolMethod(ConfigOption configOption)
{
if (!_configLookup.TryGetValue(configOption, out string value))
{
// Handle error
}
// Use value retrieved from dictionary.
}