我如何使一个方法的返回types是通用的?

有没有办法使这个方法通用,所以我可以返回一个string,布尔,整数,或双? 现在,它返回一个string,但如果它能find“true”或“false”作为configuration值,我想返回一个布尔例如。

public static string ConfigSetting(string settingName) { return ConfigurationManager.AppSettings[settingName]; } 

你需要使它成为一个通用的方法,像这样:

 public static T ConfigSetting<T>(string settingName) { return /* code to convert the setting to T... */ } 

但是调用者将不得不指定他们期望的types。 然后,您可以使用Convert.ChangeType ,假设所有相关types都受支持:

 public static T ConfigSetting<T>(string settingName) { object value = ConfigurationManager.AppSettings[settingName]; return (T) Convert.ChangeType(value, typeof(T)); } 

我不完全相信这一切都是一个好主意,

你可以使用Convert.ChangeType()

 public static T ConfigSetting<T>(string settingName) { return (T)Convert.ChangeType(ConfigurationManager.AppSettings[settingName], typeof(T)); } 
  private static T[] prepareArray<T>(T[] arrayToCopy, T value) { Array.Copy(arrayToCopy, 1, arrayToCopy, 0, arrayToCopy.Length - 1); arrayToCopy[arrayToCopy.Length - 1] = value; return (T[])arrayToCopy; } 

我在整个代码中执行这个操作,并想要一种方法将其放入方法中。 我想在这里分享这个,因为我不必使用Convert.ChangeType作为我的返回值。 这可能不是一个好的做法,但它对我有用。 这个方法需要一个通用types的数组和一个值来添加到数组的末尾。 然后将该数组与第一个数据值进行剥离,并将该数值带入该数组的末尾。 最后一件事是我返回通用数组。