• Как выполнить SELECT а потом DELETE в одном запросе?

    @aynur_safin
    Как выполнить SELECT а потом DELETE в одном запросе?

    Чтобы выполнить SELECT, а потом DELETE в одном запросе, нужно поместить их в процедуру.
    Ответ написан
    Комментировать
  • Что такое upcasting и downcasting в c#?

    GavriKos
    @GavriKos
    Читайте про ООП и полиморфизм.
    Совсем вкратце: все Person - это Human, но не все Human - Person.
    Ответ написан
    Комментировать
  • Можно ли брать macbook pro 13 для c# и .net?

    Astrohas
    @Astrohas
    Python/Django Developer
    ответ -> .Net
    Ответ написан
    Комментировать
  • Как подружить PostgreSQL и MS SQL на одном сервере?

    DevMan
    @DevMan
    a в чем собственно проблема?
    они никак друг с другом не взаимодействуют и не мешают один другому (кроме потребления ресурсов).
    Ответ написан
    Комментировать
  • Не изменяется поле структуры из статического метода, почему?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    Структура значимый тип, поэтому не меняет.
    Почитайте про значимые и ссылочные типы данных!
    Ответ написан
    Комментировать
  • Как получить путь на две папки выше запущенного приложения?

    @TwoRS Автор вопроса
    Path.GetFullPath(Directory.GetCurrentDirectory() + "\\..\\..\\");
    Ответ написан
    Комментировать
  • Понимание кода, новичок в C#. Как?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    там идет рекурсия.
    public static void Draw(int len, int n) {
    ...
    Draw(len / 3, n - 1);
    ...

    Вот тут Draw означает, что вызовется еще раз функция Draw, но с "n-1"
    Если n будет равно 0, а это произойдет на третьем вложенном вызове Draw, то вызовется команда с move.
    Ответ написан
    Комментировать
  • Как лучше реализовать авторизацию в Web API?

    impwx
    @impwx
    Разработчик
    Да, это хорошая статья. Так оно обычно и делается - bearer token и атрибуты Authorize.

    Кроме обычных токенов есть еще дополнительный тип - refresh token. Они используются в том случае, если срок жизни первого токена истекает и нужно его обновить. Использовать их необязательно - зависит от кейса. Но на всякий почитайте:

    https://leastprivilege.com/2013/11/15/adding-refre...
    Ответ написан
    Комментировать
  • В каких случая использовать обобщенные коллекции ICollection, IList, List?

    Про интерфейсы IEnumerable и IQueryable почитай мой ответ тут.

    Интерфейс ICollection наследуется от IEnumerable и подразумевает, что реализующие его классы умеют эффективно вставлять и удалять элементы.

    Интерфейс IList наследуется от ICollection и подразумевает, что реализующие его классы умеют предоставлять доступ к элементу по индексу.

    List это конкретный класс, который реализует интерфейсы IList, ICollection т.е. подразумевается, что он умеет эффективно вставлять/удалять и давать доступ по индексу.

    Попробую на пальцах когда и что использовать...
    Функция получает:
    IEnumerable - подразумевается, что ты только перебираешь элементы.

    IQueryable - клиентам придется попотеть что бы ты мог дополнить дерево выражений, что бы обеспечить более точный запрос.

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

    IList - а ты уверен что тебе очень критично иметь доступ по индексу в этой функции ? Второй звоночек про архитектуру.

    List - работаю только со списками и не пытайтесь дать мне другой контейнер.

    Функция возвращает:
    IEnumerable - никаких обещаний, пусть клиенты рассчитывают только на перебор.

    IQueryable в функции запрос (например к дб) фактически не выполняется и клиенты могут попытаться его дополнить условиями, что бы с базы шло меньше данных.

    ICollection - ты возвращаешь коллекцию путь кто хочет тот и добавляет и удаляет в ней элементы.

    IList - ты уже создал в функции соответствующую коллекцию, возможно кому то понадобится доступ по индексу.

    List - да мне наc..ть на интерфейсы создал список - отдал список и я всегда буду создавать список, даже если мне потребуется создать последовательность из 100500 миллионов элементов.
    Ответ написан
    Комментировать
  • Приложение построенное под .NET 4.5, но имеющее библиотеки, построенные до .NET 3.5 должно ли работать на .NET 4.5?

    @John_Nash
    coder
    2.0-3.5
    4.0-4.6
    это 2 различные ветки. Так что придется ставить
    Ответ написан
    Комментировать
  • StackOverflowException в свойствах?

    Android97
    @Android97
    Бэкенд и немного фронтенд разработчик
    Создайте private поле, назовите его допустим String[] _savesName.
    Далее перепишите свойство:
    public String[] SavesName
            {
                get => _savesName;
                set
                {
                    _savesName = value;
                    cbSaves.Items.Clear();
                    if (value != null) cbSaves.Items.AddRange(value);
                }
            }
    Ответ написан
    Комментировать
  • Есть аналог visual studio без авторизации?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Так полно же вариантов
    SharpDevelop для C#
    И Eclipse, NetBeans для всего остального
    Ответ написан
    Комментировать
  • Объявление пространств имен в c#?

    Ведь c# - это компилируемый язык а не интерпретируемый, а значит код не читается строчка за строчкой а строится синтаксическое дерево. И поэтому мне интересно не все ли равно где объявлять пространства имен?

    Думаю так сделано чтобы открыв файл, можно было сразу понять, какие пространства имён используются. Потому что выискивать все using'и по всему файлу - такое себе развлечение, даже если бы язык это позволял, за такое нужно было бы бить по рукам.
    Ответ написан
    Комментировать
  • Как сделать "глубокий" массив с разными типами данных в C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в вашем случае, (лично я) использовал бы примерно так:
    Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>();
    wordDictionary.Add("YANDEX", new string[] {'yandex1','yandex2'});
    wordDictionary.Add("GOOGLE", new string[] {'google1','google2'});


    или так

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication5
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<UserInfo> my_list = new List<UserInfo>();
    			my_list.Add(new UserInfo { name = "Вася", age = 19, male = true});
    			my_list.Add(new UserInfo { name = "Маша", age = 23, male = false});
    
                Dictionary<string, UserInfo> dic = new Dictionary<string, UserInfo>();
                dic.Add("YAndeX", my_list[0]);
                dic.Add("GooGle", my_list[1]);
    
                foreach (var temp in dic)
                {
                    Console.WriteLine("Key: " + temp.Key + " Value: Age" + temp.Value.age + " Name: " + temp.Value.name + " is male: " + temp.Value.male);
                }
                Console.ReadLine();
            }
        }
    
        class UserInfo
        {
            public string name { get; set; }
            public int age { get; set; }
            public bool male { get; set; }
        }
    }


    --------------------------------------------------------

    надеюсь вам поможет:
    1) массивы для знакомства
    2) кортеж
    3) класс Dictionary< TKey, TValue >
    using System;
    using System.Collections.Generic;
    
    namespace ConsoleApplication1
    {
        class UserInfo
        {
            // Метод, реализующий словарь
            public static Dictionary<int, string> MyDic(int i)
            {
                Dictionary<int, string> dic = new Dictionary<int,string>();
                Console.WriteLine("Введите имя сотрудника: \n");
                string s;
                for (int j = 0; j < i; j++)
                {
                    Console.Write("Name{0} --> ",j);
                    s = Console.ReadLine();
                    dic.Add(j, s);
                    Console.Clear();
                }
                return dic;
            }
        }
    
        class Program
        {
            static void Main()
            {
                Console.Write("Сколько сотрудников добавить? ");
                try
                {
                    int i = int.Parse(Console.ReadLine());
                    Dictionary<int, string> dic = UserInfo.MyDic(i);
    
                    // Получить коллекцию ключей
                    ICollection<int> keys = dic.Keys;
    
                    Console.WriteLine("База данных содержит: ");
                    foreach (int j in keys)
                        Console.WriteLine("ID -> {0}  Name -> {1}",j,dic[j]);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Неверный ввод");
                }
    
                Console.ReadLine();
            }
        }
    }
    Ответ написан
    Комментировать
  • Как создать команды в ASP.NET CORE?

    petermzg
    @petermzg
    Самый лучший программист
    Комментировать
  • Какие плюсы и минусы у ЯП C#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да откуда вы только лезете? Да, у всего есть плюсы и минусы. Если пишут что-то положительное, значит наверняка так оно и есть. Если пишут что-то негативное, вполне вероятно это имеет место быть.

    Да откуда всё ползёте и ползёте? Да, это только инструмент, но если инструмент называется языком программирования общего назначения, то соответственно сравнение с узкоспециализированными штангенциркулями и газовыми ключами как минимум некорректно. Это не verilog или brainfuck. Это C#.

    C# имеет статическую типизацию. Очень приятную и удобную, одну из лучших, ИМХО. Лучше только haskell, но вопрос не об этом. Типизация с метаинформацией и отменной рефлексией, можно писать программу пока пишешь программу, xzibit одобряет. У него потрясающая экосистема, лучшего я пока не встречал, говорят у руби с гемами лучше, но как-то не уверен. Шикарнейшая реализация пространства имён, а также возможность размазать класс по файлам - бесценно, для остального есть Core i7. Что ещё нужно? Производительность? Мимо. Свободность? Промазали. Портативность? Как бы не так. Логичность, читай отсутствие костылей? Эх... Если бы. Лаконичность? Чёрт, не помешало бы!

    Короче. Это потрясающий инструмент со своими недостатками. Да, он лаконичнее, чем C++, но python и ruby поставят выскочку на место, да даже F# поинтереснее будет. Да, он побыстрее python, но даже Java иногда начинает опережать, что уж говорить про С++. В общем и целом, часто выбор обусловлен не собственным желанием, а окружающими условиями, но чисто с эстетической точки зрения C# очень приятный и удобный, есть классные generics, и удобные lambdas, и потрясные extensions, так тут ещё и dynamic для всяких наркоманов привезли, а если очень хочется, то можно и в игры или даже движки.
    Ответ написан
    Комментировать
  • Microsoft Visual Studio 2017 - Как исправить ошибку компиляции?

    В вашем случае ошибка CS8078 означает, что вся ваша программа составляет одно гигантское выражение из множества if-elseif. У вас есть два варианта решения:
    • Удалить весь написанный вами код, и сесть изучать программирование заново
    • Выбрать другой язык программирования, например, BrainFuck
    Ответ написан
    1 комментарий
  • Как правильно хранить node.js проект в репозитории?

    Fragster
    @Fragster
    помогло? отметь решением!
    у меня /node_modules/ в .gitignore, чего и Вам желаю. Наверняка в svn тоже есть такие настройки
    Ответ написан
    Комментировать
  • Значение версий в C#?

    @kvasek
    Здравствуйте, вы можете смело изучать C# 5.0. Изменений много и это в основном синтаксический сахар вот например сами посмотрите What's New in C# 6 и What's new in C# 7 или на рус. Что нового в C# 6.0? и Что нового появилось в C# 7... это все можно изучить за вечер, и ради это-го покупать книгу для C# 7, ну совсем не стоит. А если вы боитесь все что вы выучите для C# 5.0 будет неактуально, то тут не бойтесь, из C# не удаляют удаляю старые фичи.
    Ответ написан
    Комментировать