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

    Привет! Например, так.
    public interface IEntity<TId> where TId : struct
    {
        TId Id { get; set; }
    }
    
    public class Person: IEntity<int>
    {
        public int Id { get; set; }
        //другие поля
    }
    
    public abstract class GenericRepository<TEntity, TKey>: where TKey : struct where TEntity :  IEntity<TKey>
    {
        internal ApplicationDbConext context;
        public GenericRepository(ApplicationDbConext context)
        {
            this.context = context;
        }
    
        //сделаем глупый метод, чисто для примера	
        public async Task<TEntity> FirstOrDefaultAsync(TKey id)
        {
            return await сontext.Set<TEntity>().FirstOrDefaultAsync(x => x.Id.Equals(id));
        }
    }
    
    public class PersonRepository: GenericRepository<Person, int>
    {
        //методы для PersonRepository
    }
    Ответ написан
    Комментировать
  • Есть ли какие-либо недостатки у статических методов?

    Как уже говорили выше, статические методы относятся к классу в целом, а не к конкретному объекту. Что касается производительности: если сравнивать обычный метод внутри класса и статический, то статический будет работать быстрее из-за того, что не тратятся ресурсы на инициализацию конструктора. Но, сами понимаете, обычно это никакого существенного буста в производительности не даёт.
    Ответ написан
    Комментировать
  • Как корректно настроить app.config в VisualStudio при использовании GIT?

    Как вариант: ту часть конфига, в которой прописываются всякие path, вынести в отдельный файл. А в основном конфиге просто использовать линк на этот файл. После этого нужно, чтобы каждый из разработчиков исключил этот файл (предположим paths.config) из обновления гита командой git update-index --skip-worktree paths.config. Теперь этот файл можно менять локально и его изменения трекаться не будут.
    Ответ написан
    Комментировать
  • Как весь проект WPF экспортировать в EXE?

    Проблема в том, что Вам нужно либо запускать exe из папки со всеми *.dll либо смержить все dll в exe. Насколько я знаю самый простой способ - вот этот.
    Ответ написан
    Комментировать
  • Как сделать бэкенд на C# с нуля?

    Хороший туториал есть на metanit по asp.net mvc/core. А если нет проблем с английским, то попробуйте курсы на pluralsight, там можно сделать 3 месяца бесплатной подписки.
    Ответ написан
    Комментировать
  • Как выбрать только повторяющиеся элементы из массива?

    a.GroupBy(x => x)
    	.Where(x => x.Count() > 1)
    	.Select(x => x.First())
    	.ToList()
    	.ForEach(Console.WriteLine);
    Ответ написан
    Комментировать