Я только что выпустил плагин Xo для Angular, который призван стать основой для WordPress и Angular. Должны соответствовать всем вашим потребностям выше.
https://wordpress.org/plugins/xo-for-angular/
В настоящее время он находится в стадии бета-тестирования и будет признателен за любые отзывы!
Основные понятия :
Документация (работа в процессе): https://angularxo.io/
Плагин GitHub: https://github.com/WarriorRocker/angular -xo-core
Пример темы: https://github.com/WarriorRocker/angular-xo-material
Дайте мне знать, что вы думаете, спасибо!
Вот быстрый пример
class Example {
private Dictionary<int,string> _map;
public Dictionary<int,string> Map { get { return _map; } }
public Example() { _map = new Dictionary<int,string>(); }
}
Некоторые варианты использования
var e = new Example();
e.Map[42] = "The Answer";
С тех пор .net 4.6 можно также определить Словарь как это:
private Dictionary<string,int> Values => new Dictionary<string, int>()
{
{ "Value_1", 1},
{ "Value_2", 2},
{ "Value_3", 3},
};
Это звонило участники с телом выражения !
пример кода:
public class MyClass
{
public MyClass()
{
TheDictionary = new Dictionary<int, string>();
}
// private setter so no-one can change the dictionary itself
// so create it in the constructor
public IDictionary<int, string> TheDictionary { get; private set; }
}
пример использования:
MyClass mc = new MyClass();
mc.TheDictionary.Add(1, "one");
mc.TheDictionary.Add(2, "two");
mc.TheDictionary.Add(3, "three");
Console.WriteLine(mc.TheDictionary[2]);
EDIT
Если вы используете C # версии 6 или более поздней, вы также можете использовать это:
public class MyClass
{
// you don't need a constructor for this feature
// no (public) setter so no-one can change the dictionary itself
// it is set when creating a new instance of MyClass
public IDictionary<int, string> TheDictionary { get; } = new Dictionary<int, string>();
}
Вы также можете изучить индексаторы . (официальная документация MSDN здесь )
class MyClass
{
private Dictionary<string, string> data = new Dictionary<string, string>();
public MyClass()
{
data.Add("Turing, Alan", "Alan Mathison Turing, OBE, FRS (pronounced /ˈtjʊ(ə)rɪŋ/) (23 June, 1912 – 7 June, 1954) was a British mathematician, logician, cryptanalyst and computer scientist.")
//Courtesy of [Wikipedia][3]. Used without permission
}
public string this [string index]
{
get
{
return data[index];
}
}
}
Затем, после того как вы заполнили словарь внутренне, вы можете получить доступ к его информации, выбрав
MyClass myExample = new MyClass();
string turingBio = myExample["Turing, Alan"];
EDIT
Очевидно, это нужно использовать осторожно, потому что MyClass
НЕ является словарем, и вы не можете использовать в нем какие-либо словарные методы, если не реализуете их для класса-оболочки. Но индексаторы - отличный инструмент в определенных ситуациях.
Пример ...
public class Example
{
public Dictionary<Int32, String> DictionaryProperty
{
get; set;
}
public Example()
{
DictionaryProperty = new Dictionary<int, string>();
}
}
public class MainForm
{
public MainForm()
{
Example e = new Example();
e.DictionaryProperty.Add(1, "Hello");
e.DictionaryProperty.Remove(1);
}
}
Еще один пример использования словаря в качестве статического свойства с использованием только аксессора get:
private static Dictionary <string, string> dict = new Dictionary <string,string>(){
{"Design Matrix", "Design Case"},
{"N/A", "Other"}
};
public static Dictionary <string, string> Dict
{
get { return dict}
}
Эта структура может быть использована для замены значений.