• Как избавиться от подобных предупреждений в тимсити?

    Nipheris
    @Nipheris Куратор тега C#
    Пользоваться NuGet для работы с зависимостями (https://www.nuget.org/packages/CompareNETObjects/ как раз то что вам нужно), а если уже пользуетесь - очевидно, нужно пофиксить список зависимостей в packages.config, или же сделать nuget restore перед вызовом MSBuild.
    Раз сборка не находится, то либо: а) путь к ней неверный; б) путь верный, но она не выкачивается nuget-ом при сборке;
    Еще может быть в) косяк с версиями/токенами, но это маловероятно.

    Ну и само собой, если у вас код компилится и работает без проблем, удалите вообще этот референс из проекта.
    Ответ написан
    Комментировать
  • На чём можно попрактиковаться на С#?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    без опыта консоли, игру не создашь :)
    p.s. всегда тестирую всякие штучки в консольке...
    например выборка бд, парсинг json, заполнение коллекции и т д
    Ответ написан
    2 комментария
  • C# вернуть массив из класса?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Во-первых, не нужно пересоздавать список в цикле. Вы уже создали список в начале метода - вот его и используйте, иначе в каждом найденном элементе xml-документа затираются ранее найденные элементы (разве что вы так и хотите сделать, и то - лучше сделать это по другому). Уберите list = new List(); в цикле.

    Во-вторых, вы уверены, что "Ссылка на объект не указывает на экземпляр объекта" - проблема с DbConf[0], а не с logger? Или, скорее, проблема в самом методе. Например, в n.SelectSingleNode("server").InnerText - и правда есть элемент "server"?. Потому что этот код метода выглядит как правильный.
    Поставьте брейкпоинт в метод, и посмотрите по шагам, где именно возникает исключение.

    Ну и в-третьих, названия методов принято называть, начиная с глагола. Метод (функция) - это действие с данным, а не данные. Назовите метод ReadXml().

    UPD.
    но как мне обратиться из любого места программы к данным?

    Сколько у вас конфигов? Больше одного? ведь у вас список, значит, нужно выбирать конкретный конфиг:

    var configs = DbConfig.GetDbConf();
    Console.WriteLine("{0} {1}", c[0].Server, c[0].Port);


    А если вы знаете имя сервера, то используйте словарь вместо списка:
    public static Dictionary<string, DbConf> GetDbConf()
    {
    	try
    	{
    		var configs = new Dictionary<string, DbConf>();
    		
    		// ...
    
    		foreach (XmlNode n in xml.SelectNodes(Properties.Settings.Default.setting_node))
    		{
    			string server = n.SelectSingleNode("server").InnerText;
    			configs.Add(server, new DbConf
    			{
    				Server = server,
    				Port = n.SelectSingleNode("port").InnerText,
    				User = n.SelectSingleNode("user_id").InnerText,
    				Pass = n.SelectSingleNode("password").InnerText,
    				Db = n.SelectSingleNode("database").InnerText
    			});
    		};
    		return list;
    	}
    	catch (Exception msg)
    	{
    		logger.Debug(msg);
    		return null;
    	}
    }

    var configs = DbConfig.GetDbConf();
    var serverName = "localhost";
    var config = configs[serverName];
    Console.WriteLine("{0} {1}", config.Server, config.Port);


    И сделайте в классе более типизированные поля - Port и User можно сделать int (тогда уж не User, а UserId).
    Ответ написан
    Комментировать
  • Как обойти ограничение на отсутствие параметров у конструктора класса generic типа?

    Vestail
    @Vestail
    Software Engineer
    Можете так попробовать.
    public class SceneObject 
    {
        //.....
        
        public void AddComponent<ComponentType>(Func<SceneObject, ComponentType> inst) where ComponentType : Component
        {
            components.Add(inst(this));
        }
        
        public static void Main(string[] args)
        {
            SceneObject sObj = new SceneObject();
            sObj.AddComponent((a) => new Component(a) );
          
        }
    }
    Ответ написан
    3 комментария
  • Как создать простой FTP сервер и клиент для него?

    @Sumor
    Наверное вам подойдёт простой FTP сервер (TFTP).
    В сети есть много примеров реализаций:
    https://tftp4net.codeplex.com/
    sourceforge.net/projects/ctftpclient
    www.codeproject.com/Articles/19314/A-simple-TFTP-c...
    Ответ написан
    Комментировать
  • TFS. Не добавляется член команды. Ошибка TF400067. В чем причина?

    Судя по разным именам машины с TFS (ASDU789) и домена, из которого вы хотите взять пользователя (ASDU111) я предположу, что вы пытаетесь добавить в TFS локального пользователя другой машины. Это невозможно, т.к. TFS-сервер просто не знает про локальных пользователей машины ASDU111. Чтобы решить эту проблему, вам нужно либо развернуть Active Directory (которого у вас видимо нет), что удобнее, но требует нужной серверной редакции Windows, либо просто продублировать всех локальных пользователей рабочих станций на сервер: тогда у вас вместо ASDU111\fgh будет ASDU789\fgh и так для всех - у вас просто будет локальный пользователь НА СЕРВЕРЕ помимо такого же на рабочей станции.

    Важно понимать, что это именно дублирование пользователя - например, смена пароля для fgh на сервере TFS никак не отразится на пароле локального пользователя. Собсно, чтобы этого не было, службы каталогов и придумали.
    Ответ написан
    Комментировать
  • Как делать синхронную с хабром публикацию?

    @DmitryMry
    Game Developer
    Опубликовал статью на хабре, сейчас готовлю её перевод на английский для публикации в своем блоге. Нужно ли добавить ссылку на русскую версию в блоге? Изменить начальную публикацию на хабре?

    В блоге компании PVS-Studio всегда в конце статьи есть что-нибудь вроде
    Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: ...

    По-моему, вполне удобно.

    В будущем планирую поступать наоборот: сначала публикация в блог на английском, затем на хабре на русском. Оформлять ли статьи как перевод, ставить ли ссылку на свой блог, или вообще не упоминать английскую версию?

    Оформлять как перевод, но при этом упоминать, что вы и являетесь автором, чтобы не вносить путаницу.
    Ответ написан
    Комментировать
  • Какой самый лучший путь развития до архитектора ПО?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    Типовая карьерная лестница архитектора:
    cfa672b40b9e4267a12cd4b7cae5a8bf.PNG
    Ответ написан
    Комментировать
  • Какой самый лучший путь развития до архитектора ПО?

    @mamkaololosha
    Солюшн архитектор это почти топовая не-менеджерская должность. Если у вас такие вопросы, то вам еще лет 10 до него работать. Он должен знать всё, уметь всё и прочее. Он может не кодить, но должен предугадать все возможные косяки и костыли.
    Ответ написан
    2 комментария
  • Как сделать преобразование массива string[] в массив double[]?

    georgich
    @georgich
    Приветствую.
    Вот на форуме мсдн дали ответ.
    double [] doubleArray = new double[stringArray.Length]
    
    for(int i=0; i<stringArray.Length; i++)
    {
         doubleArray[i] = Double.Parse(stringArray[i]);
    }

    или LINQ
    double[] doubleArray = stringArray.Select<string, double>(s => Double.Parse(s)).ToArray<double>();
    Ответ написан
    2 комментария
  • Как проверить чётность числа с плавающей запятой?

    @mletov
    Чётность в теории чисел — характеристика целого числа
    (Википедия)
    Ответ написан
    1 комментарий
  • Почему не изменяется версия библиотеки в Visual studio?

    Nipheris
    @Nipheris Куратор тега C#
    > с более поздней версией
    ну тогда уж с более ранней

    > Проверяю версию добавляемой библиотеки перед тем как добавить
    Добавляете из какого списка? Browse?

    Откройте папку со сборкой в проводнике и проверьте в свойствах версию. Если там будет 2.0.0.0, то студия не при чем.

    Кстати, а в NuGet этой либы нету?
    Ответ написан
    4 комментария
  • Как объяснить девушке что такое "некрасивый" код?

    vaux
    @vaux
    Курящий лыжник
    Рискну предположить, что до лампочки ей ваш код. Цель расспросов - показать интерес к вашей деятельности. Не обязательно посвящать в суть дела, просто показывайте, что цените её интерес.
    Ответ написан
    4 комментария
  • Почувствовал себя джуном, что делать дальше?

    Работай иди.
    Ответ написан
    Комментировать
  • Как отловить ошибку приведения даты в C#?

    @Beltoev
    Живу в своё удовольствие
    Не пробовали дату в стандартном формате писать? Как бы всегда избавляет от проблем такого рода
    Created >= '19.10.2015 0:00:00' AND Created <= '26.10.2015 0:00:00'

    UPD:
    Для тех, кто в подобной ситуации, но не дошёл до комментариев:
    TRY_PARSE('26/10/2015 00:00:00' AS DATETIME USING 'ru-ru')
    Ответ написан
  • В чем хранить данные, для которых нужен поиск?

    Flaker
    @Flaker
    Ну по асимптотике, добавление эл-та в HashMap (А Dictionary — это оно и есть), — это O(n)
    (На самом деле нет. Если код не для CodeForces, то можно считать что O(1), потому что вероятность коллизии не большая)
    Если устраивает такая, то вполне можно использовать.
    А максимальное запоминать при вставке. Тогда получение макс будет O(1).
    Ответ написан
    4 комментария
  • Документирование кода. Правильно ли я делаю?

    Adamos
    @Adamos
    Комментарии на английском - хорошая практика.
    Если у вас возвращается переменная со значением true или false, логично назвать эту переменную по условию, которое истинно или ложно. Operation не может быть true, а вот, скажем, success - может. И комментарий станет излишним, по имени понятно. Аналогично, если в переменной operation_messages должны быть error descriptions, какого черта она называется иначе?
    В общем, если в этом, вполне очевидном, случае верно назвать переменные, то комментарий сожмется до описания формата ввода и вывода. Остальное comments itself.
    Ответ написан
    3 комментария
  • C# заменит ли Java?

    Oxoron ну что тут сказать навскидку...
    Я всегда считал .net допиленной java-платформой. Не то, чтобы в дотнете прям нереальные невероятные новшества, но все же некоторые вещи были обдуманы еще раз. Например, очень важным считаю разделение на reference и value типы. Правда, ИМХО, MS не довела идею до победного конца (слишком много технических вопросов нужно учитывать при выборе struct vs class), но все равно шаг очень правильный.
    Плюс, считаю важным отсутствие корреляции между логическим структурированием библиотек (по неймспейсам) и физическим (по сборкам). На каждом уровне должны приниматься отдельные решения насчет того, что куда класть.
    Еще одним преимуществом (нивелированным на данный момент) была изначальная ориентация .net на мультиязычную поддержку. Сейчас конечно JVM-языков навалом, но раньше это все-таки смотрелось киллер-фичей .net. Особенно поддержка "склеивающих" языков, таких как C++/CLI, которые позволяли интегрировать уже существующие компоненты с .net-приложениями. Дотнет изначально не был платформой в себе, разработчикам давали массу инструментов для интеграцией с COM и native-кодом. Ну и само собой managed-языки в приличном количестве, вон F# уже довольно давно подтянулся как официально (!!) поддерживаемый.

    А вообще конечно изначальным преимуществом .net были именно языки. Я думаю даже самые ярые джависты со мной согласятся, что с момента выпуска C#, язык Java развивается догоняющим образом. Можно опять сказать, что есть Scala, но тогда нужно учесть, что C# изначально был визитной карточкой платформы с момента ее появления. Ну и самое главное - инструменты. В мире Java достаточно хороших IDE, но уровень взаимоподдержки Студии и .net насколько мне известно пока не достигнут.

    И тут мы выходим на стандартное основное преимущество решений от MS - максимальная "готовность" и интеграция продуктов. К сожалению последние года 3 в Джаву не совался, но знакомые не раз говорили, что с отсутствием знаний об обеих платформах им гораздо легче было поднять hello-world веб-сайт (!) на asp.net в студии, нежели на том же Spring. Так или иначе, это фактор.

    Теперь библиотеки. Конечно, в мире джава их огромное количество. Я думаю и сегодня их значительно больше, чем в дотнет. Две либы в моем текущем проекте - NHibernate и NetTopologySuite - это порты с джавовских либ. Джава рулит на сервере. Про..аная Майкрософтом настоящая кроссплатформенность .net не давала ему потеснить джаву. Сейчас конечно это усиленно исправляется - в дотнете уже наступило перерождение после массовых релизов в open-source, переделанного asp.net, и появления DNX. По сути теперь .net официально поддерживается на *nix - системах. Это конечно надо было сделать намного раньше, но и сейчас этому рады.
    NuGet прекрасно справляется со своими задачами, более тесная интеграция в билд-процесс в DNX только улучшит процесс взаимодействия с ним.

    Ну и последнее - разработка UI. Все что есть в Java-мире (JavaFX, Java3D, Swing) это совсем не то. Windows Forms был отличным аналогом Дельфийских компонентов для UI, WPF в свое время вышиб немало дверей своим появлением. Если б он еще и развивался как подобает... Да, конечно, на джавовских технологиях вы напишите кроссплатформенную вещь, но она будет одинаково чужеродно смотреться и на винде, и в линуксовых desktop-средах. А людям в enterprise не особо нужна кроссплатформенность в UI - им намного важнее аккуратный привычный интерфейс, в том числе на Винде. Сейчас WPF может потеснить только современный Qt. Выбирая сегодня UI для десктопа, я бы выбирал между WPF и Qt, про джаву бы даже не подумал (да, я считаю что сегодня далеко не все можно и нужно пихать в браузер на тормозной JS. Весь новомодный неповоротливый софт, написанный с использованием Atom-а, меня удручает).
    ПРАВКА: посмотрел последние демки по JavaFX. В общем-то неплохо, осталось только дождаться хорошего роста коммьюнити и надеяться что не будет проблем с производительностью в сложных приложениях.

    Сколько тут преимуществ в штуках, посчитайте сами. Самый главный вывод - мало у кого возникает желание переходить на другую платформу просто потому, что обе сейчас очень хорошо развиты, и в обоих есть что поизучать, в обоих есть клиент и сервер, куча библиотек. Изучив один стек, никто не будет тратить время на другой, в этом просто нет смысла. Если кто-то и переучивается, то ради хорошей зарплаты: в банках и прочих страховых джава чуть популярнее, и за нее больше платят, процентов на 20.

    P.S. Да, тут кстати пишут что игродельство на C# достигло серьезного уровня. Я 3d делал и делаю на C++, поэтому тут пусть кто-нибудь другой прокомментирует.
    Ответ написан
    1 комментарий