Те кто изучал java script или php, а потом переходили на C# наверное меня поймут. Как они бедные обходятся без многомерных ассоциативных массивов без строгой типизации и приведения типов? В общем ситуация такая - есть возможность написать кусок программы, ограничение в 10000 символов, ничего своего подгружать нельзя никакие Hashtable OR Dictionary. Вся прелесть работы с многомерными ассоциативными массивами - в том что можно быстро - максимально быстро обратиться к его элементу по ключу - будь то числу или строке. в PHP таким примером может служить
['животные домашние'=>['кошка','собака','хомячок'],0=>['домашние','дикие'],'свойства'=>['пушистость'],25=>[1985, 1990,1995]]
Читал форумы C# - там говорят - зачем вам ассоциативные массивы? - используйте классы, это конечно прекрасно, но как обращаться к свойствам этих классов на других языках(здесь имеется ввиду алфавит разных языков мира и поддерживает ли C# UTF-8 - например создать свойство класса на русском?) или по цифре? и как мне добавить свойство в уже имеющийся объект на C#, удалить из объекта свойство или может быть назначить свойству объекта значение отличное от типа, указанного в свойстве этого объекта?
На php я бы сделал это просто:
class a
{
protected $params = [];
public function __set($name, $value){
$this->params['$name'] = $value;
}
public function __get($name){
return $this->params['$name'];
}
}
$a_obj = new a();
$a_obj->some_param = [1987,'name'=>'Hero'];
echo $a_obj->some_param[0];
echo $a_obj->some_param['name'];
выведет 1987Hero
в общем - уважаемые программисты на C# помогите перейти к пониманию - как вы работаете с данными - типы которых вам не известны и количество тоже - возможно вы пишите какие то свои костыли на подобии перегрузки методов - смотрите к какому типу данных относятся входящие данные, заносите в LIST с указанным типом данных - и опять же как положить в лист LIST данные с определенным индексом, например [25=>'mehanic', 58=>'auto'] - там обычно кладутся как попало - стек [0=>'mehanic',1=>'auto'] В общем для тех кто не понял - скажите я поясню свой вопрос.
P.S. вот эта тема для понимания сильно тормозит понимание всего языка в целом, из за этого он кажется каким то ущербным в использовании. Спасибо за понимание и за то что дочитали
Добавил 25.03.2019 наткнулся на рекомендации от Microsoft
var contacts = new[]
{
new {
Name = " Eugene Zabokritski",
PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
},
new {
Name = " Hanying Feng",
PhoneNumbers = new[] { "650-555-0199" }
}
};
Источник
Многомерные ассоциативные массивы реализуются путем применения следующей конструкции
var contacts = new[]
{
new {
Name = " Eugene Zabokritski",
PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
},
new {
Name = " Hanying Feng",
PhoneNumbers = new[] { "650-555-0199" }
}
};
Источник MIcrosoft
Также тем, кто впервые столкнулся со строго типизированным языком программирования в помощь будет эта статья. Здесь вы найдете аналогию с JS и как пример использования callback функций.
В С# для национального языка есть понятие Culture
System.Globalization
Посмотреть текущуй язык можно выполнив:
Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.ToString());
изменить культуру:
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");
Интернационализация: обеспечение возможности использования приложения без языковых или культурных барьеров. Информация о языке и культуре поступает из ресурса, а не жестко закодирована в приложении.
Локализация: перевод и включение продукта для определенной локали. На основе файла ресурсов приложение переводится на язык и культуру.
Подробнее тут https://docs.microsoft.com/en-us/dotnet/standard/globalization-localization/
Есть много сторонних инструментов для локализации, например https://marketplace.visualstudio.com/items?itemName=PhilJollans.Multi-LanguageforVisualStudio
Попробуйте этот или другой инструмент на ваш выбор, не начинайте с 'ручных' правок.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть текст в RichTextBox, мне надо чтоб считывались все пробелы(если у меня 2 пробела, то они не считывались как один)Это мне надо для выравнивания...