C# 带有泛型类型约束的方法,如何使用?

C# 带有泛型类型约束的方法,如何使用?,c#,asp.net,windows-phone-8,C#,Asp.net,Windows Phone 8,我使用以下方法来保存和获取来自隔离存储设置的数据” 然后,让我们提供两种保存/加载方法: public static void SaveAudioList(string AudioListKey, IList<SongPlay> audioList) { IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; if (settings.Contains(AudioL

我使用以下方法来保存和获取来自隔离存储设置的数据”

然后,让我们提供两种保存/加载方法:

public static void SaveAudioList(string AudioListKey, IList<SongPlay> audioList)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (settings.Contains(AudioListKey)) settings[AudioListKey] = audioList;
    else settings.Add(AudioListKey, audioList);
}
根据get value,我编写了以下方法:

public static void LoadAudioList<T>(string AudioListKey, ref T target) where T : IList<SongPlay>
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (!settings.Contains(AudioListKey)) throw new NotImplementedException(); // do something - list doesnt exist
    target = (T)settings[AudioListKey];
}

我如何称呼它?

为什么
LoadAudioList
是一种通用方法?
它是一个void函数,希望执行
IList
的简单赋值

为什么不这样实施呢:

public static IList<SongPlay> LoadAudioList(string AudioListKey)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (!settings.Contains(AudioListKey)) throw new NotImplementedException(); // do something - list doesnt exist
    return settings[AudioListKey] as IList<SongPlay>;
}
公共静态IList LoadAudioList(字符串AudioListKey)
{
IsolatedStorageSettings设置=IsolatedStorageSettings.ApplicationSettings;
如果(!settings.Contains(AudioListKey))抛出新的NotImplementedException();//执行某些操作-列表不存在
将设置[AudioListKey]返回为IList;
}
如果要使其保持为空:

public static void LoadAudioList(string AudioListKey, ref IList<SongPlay> target)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (!settings.Contains(AudioListKey)) throw new NotImplementedException(); // do something - list doesnt exist
    target = settings[AudioListKey] as IList<SongPlay>;
}
公共静态void LoadAudioList(字符串AudioListKey,参考IList目标)
{
IsolatedStorageSettings设置=IsolatedStorageSettings.ApplicationSettings;
如果(!settings.Contains(AudioListKey))抛出新的NotImplementedException();//执行某些操作-列表不存在
目标=将[AudioListKey]设置为ILST;
}

请在以后的问题上花更多的精力-使用完整的句子,适当的大写字母,很好地设置代码格式,并在发帖前通读全文,问问自己这是否是你想帮助解决的问题。在回答问题方面-不太清楚为什么你有一个泛型c方法开始…为什么您的方法不仅仅是
IList LoadAudioList(字符串键)
public static IList<SongPlay> LoadAudioList(string AudioListKey)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (!settings.Contains(AudioListKey)) throw new NotImplementedException(); // do something - list doesnt exist
    return settings[AudioListKey] as IList<SongPlay>;
}
public static void LoadAudioList(string AudioListKey, ref IList<SongPlay> target)
{
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (!settings.Contains(AudioListKey)) throw new NotImplementedException(); // do something - list doesnt exist
    target = settings[AudioListKey] as IList<SongPlay>;
}