Существует класс для каждого типа массива, поэтому для int[]
существует класс, для класса Foo[]
существует класс. Эти классы создаются JVM. Вы можете получить к ним доступ через int[].class
, Foo[].class
. Прямой суперкласс этих классов Object.class
public static void main(String[] args)
{
test(int[].class);
test(String[].class);
}
static void test(Class clazz)
{
System.out.println(clazz.getName());
System.out.println(clazz.getSuperclass());
for(Class face : clazz.getInterfaces())
System.out.println(face);
}
Также существует правило подтипирования времени компиляции, если A
является подтипом B
, A[]
является подтипом B[]
.
Обнаружено, что это можно сделать с помощью класса IsolatedStorageSettings.ApplicationSettings.
Я написал простую оболочку для класса IsolatedStorageSettings, которая помогает сохранять и извлекать настройки. Может быть, вам это пригодится.
using System.IO.IsolatedStorage;
public static class AppSettings
{
private static IsolatedStorageSettings Settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
public static void StoreSetting(string settingName, string value)
{
StoreSetting<string>(settingName, value);
}
public static void StoreSetting<TValue>(string settingName, TValue value)
{
if (!Settings.Contains(settingName))
Settings.Add(settingName, value);
else
Settings[settingName] = value;
// EDIT: if you don't call Save then WP7 will corrupt your memory!
Settings.Save();
}
public static bool TryGetSetting<TValue>(string settingName, out TValue value)
{
if (Settings.Contains(settingName))
{
value = (TValue)Settings[settingName];
return true;
}
value = default(TValue);
return false;
}
}