Генератор кода на C# — ИИ-инструмент нейросети Аливия. Напишет модель с валидацией, LINQ-запрос, контроллер ASP.NET Core, работу с базой через Entity Framework или скрипт для Unity. Пришлите свой метод — сделает рефакторинг по принципам SOLID, добавит async/await там, где это уместно, разберёт стек-трейс исключения и напишет тесты на xUnit с моками.
Работает онлайнРусский и другие языкиТест бесплатно, без регистрацииБез VPNДоступ 24/7Голосовой ввод и файлы
Зарегистрируйтесь и подтвердите почту — начислим ещё 10 000 символов на 7 дней.ЗарегистрироватьсяОнлайн
Поиск инструментов
Весь каталог →Отдельной страницы под это нет, но Аливия справится в чате на этой странице.
Популярные инструменты для программистов
Программистам · ИИ-инструмент нейросети Аливия
Конструктор кода на C#
Укажите версию .NET и тип проекта, опишите задачу или вставьте ошибку — бот напишет или исправит код.
Ещё настройки
Запрос подставится в поле чата — его можно поправить перед отправкой.
Вот пример кода для консольного приложения на C# с использованием .NET 8 и Entity Framework Core, который выгружает заказы за прошлый месяц в файл Excel.
1. Program.cs
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using OfficeOpenXml; // Убедитесь, что у вас установлен пакет EPPlus
namespace YourNamespace
{
class Program
{
static async Task Main(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<YourDbContext>();
optionsBuilder.UseSqlServer("YourConnectionString"); // Замените на вашу строку подключения
using var context = new YourDbContext(optionsBuilder.Options);
var lastMonth = DateTime.Now.AddMonths(-1);
var startDate = new DateTime(lastMonth.Year, lastMonth.Month, 1);
var endDate = startDate.AddMonths(1).AddDays(-1);
var orders = await context.Orders
.Where(o => o.Date >= startDate && o.Date <= endDate)
.Select(o => new { o.Date, o.Client, o.Amount })
.ToListAsync();
var totalAmount = orders.Sum(o => o.Amount);
orders.Add(new { Date = (DateTime?)null, Client = "Итого", Amount = totalAmount });
var filePath = "Orders.xlsx";
using var package = new ExcelPackage();
var worksheet = package.Workbook.Worksheets.Add("Orders");
worksheet.Cells.LoadFromCollection(orders, true);
await package.SaveAsAsync(filePath);
Console.WriteLine($"Файл сохранен: {filePath}");
}
}
}2. YourDbContext.cs
using Microsoft.EntityFrameworkCore;
namespace YourNamespace
{
public class YourDbContext : DbContext
{
public YourDbContext(DbContextOptions<YourDbContext> options) : base(options) { }
public DbSet<Order> Orders { get; set; } // Убедитесь, что у вас есть класс Order
}
public class Order
{
public DateTime Date { get; set; }
public string Client { get; set; } = string.Empty;
public decimal Amount { get; set; }
}
}Объяснение:
- Строка подключения: Замените
YourConnectionStringна вашу строку подключения, которая может быть загружена из конфигурации. - Class Order: Убедитесь, что класс
Orderсоответствует вашей структуре базы данных. - Пакет для работы с Excel: Используется
EPPlus, чтобы работать с Excel файлами. Установите его через NuGet.
Установка NuGet пакетов:
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package EPPlus
Этот код будет извлекать заказы за прошлый месяц и сохранять их в файл Excel с итоговой строкой. Убедитесь, что у вас настроена база данных и созданы необходимые классы.
Ошибка CS1061 возникает из-за отсутствия метода Where для типа List<decimal>. Это связано с тем, что необходимо добавить using System.Linq;, чтобы использовать методы расширения LINQ.
Вот исправленный код:
// Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
var prices = new List<decimal> { 120m, 80m, 300m };
var expensive = prices.Where(p => p > 100m).ToList();
Console.WriteLine(expensive.Count);Почему так и что поменять под свой проект: Добавлен using System.Linq;, который необходим для работы с LINQ-методами, такими как Where.
Пакеты NuGet: Для данного кода дополнительные пакеты не требуются, так как все используемые возможности входят в стандартную библиотеку .NET.
// Program.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSingleton<ProductService>();
var app = builder.Build();
app.MapGet("/products", async (ProductService productService) =>
{
return Results.Ok(await productService.GetProductsAsync());
});
app.MapPost("/products", async (ProductService productService, Product product) =>
{
if (string.IsNullOrWhiteSpace(product.Name) || product.Price <= 0)
{
return Results.BadRequest("Название не может быть пустым и цена должна быть больше нуля.");
}
await productService.AddProductAsync(product);
return Results.Created($"/products/{product.Id}", product);
});
await app.RunAsync();
// Product.cs
public class Product
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}
// ProductService.cs
using System.Collections.Concurrent;
public class ProductService
{
private readonly ConcurrentBag<Product> _products = new();
public Task<IEnumerable<Product>> GetProductsAsync() =>
Task.FromResult(_products.AsEnumerable());
public Task AddProductAsync(Product product)
{
_products.Add(product);
return Task.CompletedTask;
}
}Пакеты NuGet:
- Microsoft.AspNetCore.App
Вот пример скрипта на C# для управления движением персонажа в Unity с использованием клавиш WASD и прыжка на пробел. Скрипт учитывает возможность прыжка только тогда, когда персонаж находится на земле, используя компонент Rigidbody.
PlayerController.cs
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f; // Скорость движения
public float jumpForce = 5f; // Сила прыжка
private Rigidbody rb; // Компонент Rigidbody
private bool isGrounded; // Находится ли персонаж на земле
void Start()
{
rb = GetComponent<Rigidbody>(); // Получаем Rigidbody
}
void Update()
{
Move(); // Вызываем метод движения
Jump(); // Проверяем прыжок
}
void Move()
{
float moveHorizontal = Input.GetAxis("Horizontal"); // Получаем горизонтальное движение
float moveVertical = Input.GetAxis("Vertical"); // Получаем вертикальное движение
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); // Создаём вектор движения
rb.MovePosition(transform.position + movement * moveSpeed * Time.deltaTime); // Перемещаем персонажа
}
void Jump()
{
if (isGrounded && Input.GetKeyDown(KeyCode.Space)) // Если персонаж на земле и нажата пробел
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse); // Применяем силу для прыжка
}
}
void OnCollisionStay(Collision collision) // Проверяем, находится ли персонаж на земле
{
isGrounded = true; // Устанавливаем isGrounded в true, если есть контакт с землёй
}
void OnCollisionExit(Collision collision) // Проверяем, покинул ли персонаж землю
{
isGrounded = false; // Устанавливаем isGrounded в false, если контакт с землёй потерян
}
}Объяснение кода
- Компоненты: В этом коде используется
Rigidbodyдля управления физикой персонажа. Проверка на то, стоит ли персонаж на земле, осуществляется с помощью методовOnCollisionStayиOnCollisionExit. - Движение: Метод
MoveиспользуетInput.GetAxisдля обработки ввода с клавиатуры и перемещения персонажа. - Прыжок: Прыжок осуществляется с помощью метода
Jump, который проверяет, находится ли персонаж на земле перед выполнением прыжка.
Настройка под ваш проект
- Убедитесь, что ваш объект с персонажем имеет компонент
Rigidbody. - Настройте значения
moveSpeedиjumpForceв инспекторе Unity для достижения желаемых значений. - Убедитесь, что на вашем объекте есть коллайдер, чтобы корректно срабатывать методы проверки на землю.
Пакеты NuGet
Для этого проекта дополнительные пакеты NuGet не требуются, так как используется стандартный функционал Unity.
// DeliveryTests.cs
using System;
using Xunit;
public class DeliveryTests
{
[Theory]
[InlineData(3000m, 5, 0)]
[InlineData(5000m, 0, 0)]
[InlineData(2999m, 5, 150 + 5 * 20)]
[InlineData(1000m, 10, 150 + 10 * 20)]
public void Cost_ValidInputs_ReturnsExpected(decimal orderSum, int distanceKm, decimal expected)
{
// Act
var result = Delivery.Cost(orderSum, distanceKm);
// Assert
Assert.Equal(expected, result);
}
[Fact]
public void Cost_NegativeDistance_ThrowsArgumentOutOfRangeException()
{
// Arrange
decimal orderSum = 1000m;
int distanceKm = -1;
// Act & Assert
Assert.Throws<ArgumentOutOfRangeException>(() => Delivery.Cost(orderSum, distanceKm));
}
}Список пакетов NuGet:
- xunit
- xunit.runner.visualstudio
Ваш код на C# выполняет выборку последних 30 заказов для указанного клиента из базы данных. Он возвращает список этих заказов в виде IReadOnlyList<Order>.
По блокам:
- Объявление метода:
public async Task<IReadOnlyList<Order>> GetRecentAsync(int clientId)
- Это асинхронный метод, который принимает идентификатор клиента (
clientId) и возвращает список заказов для этого клиента.
- Это асинхронный метод, который принимает идентификатор клиента (
- Запрос к базе данных:
return await _db.Orders
- Здесь происходит обращение к коллекции
Ordersв контексте базы данных (предположительно, это экземплярDbContext).
- Здесь происходит обращение к коллекции
- Фильтрация заказов:
.Where(o => o.ClientId == clientId && o.CreatedAt >= DateTime.UtcNow.AddDays(-30))
- Заказы фильтруются по клиенту и по дате создания, оставляя только те, которые созданы в последние 30 дней.
- Сортировка:
.OrderByDescending(o => o.CreatedAt)
- Отсортировка от самых свежих заказов к самым старым.
- Отключение отслеживания:
.AsNoTracking()
- Указывает, что результаты запроса не будут отслеживаться контекстом базы данных, что может улучшить производительность, если изменения не требуется.
- Асинхронное выполнение запроса:
.ToListAsync();
- Асинхронно выполняет запрос и преобразует результаты в список.
Замечания:
- В коде нет явных ошибок, но стоит убедиться, что
_dbиOrdersправильно инициализированы и что модельOrderкорректно настроена. - Убедитесь, что метод
GetRecentAsyncвызывается из асинхронного контекста, иначе может возникнуть проблема с ожиданием результата. - А также важно, чтобы у вас была правильно настроена версия .NET для поддержки асинхронных операций и LINQ — в данном случае актуально использовать .NET 8 или выше.
Ответы получены 28.09.2026 в этом чате и приведены без правок. Выделено то, чего не было в запросе.
Что уточнить в запросе про C#?
Разные версии .NET и типы проектов требуют разного кода. Укажите контекст — и правок будет меньше.
| Что указать | Почему это важно |
|---|---|
| Версия .NET | Записи, top-level statements и nullable-контекст доступны не во всех версиях |
| Тип проекта | Консоль, ASP.NET Core, WPF или Unity — разные подходы к одному и тому же |
| Работа с базой | Entity Framework, Dapper или чистый ADO.NET дают несравнимый код |
| Асинхронность | Синхронный и async-вариант различаются не только ключевыми словами |
Быстрый доступ
Самое приятное, это возможность начать пользоваться ИИ можно буквально за пару кликов. Никакой регистрации. Никаких мучений с аккаунтами, подтверждением почты или логинами. Зашёл — задал вопрос — получил ответ. Всё. Да, если всё понравится, потом сможете создать аккаунт (но это тоже не долго).
Работай где хочешь
Причём работает из любой точки мира. Без VPN (без дискриминации). Хоть с телефона, хоть с планшета. Актуально, когда находишься в командировке или просто на отдыхе. Появилась идея — открыл, сгенерировал, сохранил.
Понимает русский
Круто и то, что нейросеть отлично понимает русский. Ну, то есть реально читает и отвечает по-русски. Можно писать запросы как угодно. В свободной форме, с терминами, без. Она разберётся. И, если что, может переспросить или уточнить.
Знание C# на отлично
Что касается кода,то C# она знает отлично. Но этим не ограничивается. Можно спокойно генерировать куски на JavaScript, SQL, Python, C++, CSS, PHP, да даже на каких-нибудь Go или Dart. И всё это в одном окне, в одной сессии.
Быстрая работа
Работает Аливия быстро. Прям очень. Ввел запрос — через секунду видишь результат. Никаких «пожалуйста подождите», никаких таймеров. Это особенно ценно, когда нужно быстро протестировать гипотезу, сгенерировать шаблон, или просто не хочется ждать.
Круглосуточный доступ
Чат доступен 24/7. Без выходных и праздников. Она не уходит на обед, не болеет и не устраивает себе пятничный релакс. Надёжный помощник.
Стоимость
Цены? Более чем вменяемые. Есть бесплатный вариант для теста. А платные подписки это, по сути, копейки в сравнении с зарплатой даже одного стажёра.
Экономия ресурсов
Отдельный жирный плюс это экономия ресурсов. Реально можно сократить расходы на команду, особенно если задачи типовые. Нейросеть поможет быстро подготовить основу, сэкономив часы работы разработчиков.
Точность ответов
Да, она высокая. Ошибки бывают, конечно, как у любого инструмента. Но если правильно ставить задачу, то результат чаще всего адекватный и рабочий. А иногда даже с комментариями и рекомендациями.
Дополнительно стоит упомянуть, что наш ИИ:
- может помогать с документацией;
- объясняет, как работает конкретный кусок кода;
- адаптирует код под другую версию .NET или под определённую архитектуру;
- предлагает альтернативные решения;
- помогает писать тесты;
- превращает псевдокод в реальный код.
Плюсы и минусы
Применение
Когда речь заходит о применении нейросети Аливия для генерации кода на C#, то здесь вы получаете огромный простор для работы. Она реально может везде пригодиться. От простых проектов до серьёзных коммерческих решений. Главное, понимать, как и где её лучше использовать.
Веб-разработка
C# давно и прочно занял своё место в вебе, особенно с таким мощным инструментом как ASP.NET. ИИ спокойно помогает генерировать контроллеры, модели, представления, подключение к базам данных. Может подсказать, как реализовать авторизацию, как настроить маршруты, как организовать работу с формами или валидацией. Может набросать CSS, HTML или даже куски на JavaScript. Всё в одном флаконе.
Фреймворки
Неважно, Razor Pages вы используете или MVC, Blazor или даже что-то нестандартное. Важно, что нейросеть понимает структуру, знает, как работают фреймворки, и подстраивается под них. Она может предложить шаблон проекта, объяснить, когда лучше использовать конкретный подход. И, если что, даже сгенерирует конфиги и нужные пакеты.
Анализ данных
C#, не самый первый язык, который приходит в голову при словах “data science”, но тем не менее.
Существуют библиотеки типа ML.NET, которые позволяют строить модели, анализировать таблицы, запускать прогнозы. Аливия умеет с этим работать. Может сгенерировать код для загрузки данных, их нормализации, построения модели, предсказания результата.
Автоматизация задач
Это вообще одна из сильных сторон C#. Нужно сделать скрипт для обработки файлов? Настроить автоматическое копирование, переименование, отправку отчётов? Нейросеть справляется на ура.
Она пишет код для работы с файловой системой, с сетевыми запросами, с JSON и XML, с таймерами и событиями. Можно автоматизировать отчётность, выгрузку данных, даже рутину в Excel.
Игровая разработка
Unity один из самых популярных игровых движков, и он как раз работает на C#. Так вот, ИИ может помогать с кодом для Unity. Движения, столкновения, управление персонажем, взаимодействие с UI, работа с анимациями, звуками, физикой. Иногда даже с комментариями, что особенно полезно новичкам.
Системное администрирование
Нужно автоматизировать управление системой? Написать утилиту для мониторинга процессов или управления службами? Aliviy поможет. Может на генерировать скрипты на C# или PowerShell, показать, как использовать Windows API или WMI. А если задача необычная, то предложит варианты.
Финансовая сфера
Здесь важна точность, логика, работа с числами. И здесь C# как рыба в воде. Нейросеть помогает с расчётами, генерацией финансовых моделей, парсингом данных, созданием отчётов и графиков.
Можно даже реализовать анализ транзакций, простые элементы риск-менеджмента, отчётность по клиентам или интеграцию с банками и API.
Образование
Это вообще отдельный мир. Студенты, преподаватели, самоучки, все могут использовать Aliviy как помощника. Объяснение теории? Пожалуйста. Примеры кода? Конечно. Задачи на циклы, массивы, ООП, алгоритмы? Да сколько угодно. Нейросеть помогает разобраться, учиться, закреплять и экспериментировать. Причём в интерактивном формате. Диалог, подсказки и уточнения.
А ещё…
- Тестирование (юнит-тесты, мок-объекты, тестовые окружения);
- Работа с базами данных (Entity Framework, Dapper, SQL-запросы, миграции);
- Интеграция с API (REST, SOAP, GraphQL);
- Создание десктопных приложений (WPF, WinForms, MAUI);
- Поддержка DevOps-процессов (CI/CD скрипты, автоматизация билдов);
- Создание ботов и телеграм-ботов на базе C#;
- Работа с IoT-устройствами;
- Написание собственных библиотек и SDK;
- Миграция старых проектов на новые версии .NET;
- Оптимизация производительности и профилирование.
Специализации и специальности
Когда дело касается того, кому может пригодиться Aliviy для генерации кода на C#, список получается довольно внушительным. Это не просто игрушка для программистов, а универсальный инструмент, который спокойно находит себе место в самых разных профессиях и специальностях. Кто-то с его помощью экономит время. Кто-то учится, а кто-то делает свою работу быстрее и качественнее.
Программисты и разработчики
Ну, это очевидно. Backend, frontend, фуллстек — не важно. Нейросеть помогает писать код, исправлять баги, подсказывать архитектурные решения. Нужно быстро сгенерировать контроллер на ASP.NET? Или обработать данные из API? Или просто не тратить время на шаблонную болтовню между методами? Всё, что можно автоматизировать.
Аналитики данных
Да, C# не так популярен среди дата-аналитиков, как Python, но всё же. ML.NET, статистические библиотеки, интеграции с Excel или Power BI, всё это актуально. Аливия может сгенерировать код для анализа, подсчётов, построения прогнозов. Она подскажет, как загрузить данные, обработать их, визуализировать или засунуть в отчёт.
Системные администраторы
Админы часто сталкиваются с автоматизацией задач. И тут C# очень кстати, особенно для работы в Windows-среде. Aliviy может помочь с написанием утилит, скриптов для мониторинга, сбора логов, управления службами. Вместо того чтобы часами гуглить команды, можно просто попросить у нейросети.
Автоматизаторы и тестировщики
Тестирование, это ещё одна область, где ИИ очень полезен. Нужно написать юнит-тесты? Покрыть код автоматическими проверками? Сгенерировать тестовые данные? Пожалуйста. Нейросеть спокойно напишет тесты на NUnit, xUnit, MSTest, добавит моки, объяснит, как лучше структурировать проверки. Может даже подсказать, как оптимизировать тестовый фреймворк под конкретный проект.
Преподаватели и учителя
Даже если вы не разработчик, а просто преподаёте C#, наш ИИ будет отличным помощником. Подготовить примеры кода? Объяснить, как работает async/await? Составить задания или тесты для студентов? Или придумать метафору для объяснения делегатов? Всё это в пределах пары запросов.
Студенты, школьники и новички
Они вообще в восторге. Спросить: “почему мой цикл не работает?” и получить не просто ответ, а развёрнутое объяснение, с примерами и подсказками. Попросить: “напиши игру крестики-нолики на C# в консоли” — и получить готовый код с комментариями. Учиться с таким помощником одно удовольствие!
Разработчики игр
Unity использует C#, а значит Aliviy им в помощь. Скрипты для движения, поведения врагов, коллизий, интерфейса, управления звуком, физикой — всё это можно генерировать автоматически. Плюс помощь с организацией проекта, паттернами.
Веб-разработчики
И снова ASP.NET, Blazor, Razor Pages, MVC — нейросеть хорошо с этим работает. Можно быстро сгенерировать backend-логику, формы, REST API, даже ViewModel. А если нужно, она подскажет, как реализовать аутентификацию, подключение к базе, пагинацию и так далее.
Графические дизайнеры
Казалось бы, при чём тут C#? Но если дизайнер делает интерфейсы под приложения, взаимодействует с WPF, Unity, XAML, то C# может быть в ходу. Нейросеть поможет с кодом, связанным с UI, анимациями, навигацией, кнопками, визуальными эффектами. Даже в рамках Figma-to-code концепций она может быть полезной.
Дополнительно
- Архитекторы ПО (чтобы обсудить структуру будущего проекта);
- DevOps-инженеры (для автоматизации билда и деплоя);
- Менеджеры продуктов (чтобы быстро протестировать гипотезу без привлечения всей команды);
- Фрилансеры (чтобы ускорить выполнение заказов);
- Стартаперы (чтобы быстрее запускать MVP);
- Хакатонщики (чтобы за ночь собрать проект, а не ковыряться в справочнике).
В общем, Aliviy с C#, это не про узкий круг специалистов. Это инструмент, который может пригодиться самым разным людям. Он не заменяет полностью знания и опыт, но точно усиливает, ускоряет, помогает.
Задачи
Нейросеть Аливия создана не просто для болтовни. Особенно когда речь идёт о C#. Она умеет реально решать задачи, и делает это не хуже, чем опытный джуниор, а иногда и медлительный мидл. Так что давай по порядку. Что именно он может?
Генерация кода на C#
Самое очевидное. Напиши: “Сделай класс для управления пользователями” и получите готовую структуру. С методами, свойствами, комментариями. Нужно создать API-контроллер, реализацию интерфейса, подключение к базе, загрузку данных — легко. От маленьких методов до целых модулей.
Оптимизация кода
Есть кусок, который работает, но страшный? ИИ перепишет его короче, быстрее, читаемее. Убирает лишнее, предлагает более эффективные конструкции, избавляет от повторов.
Поиск и исправление ошибок
Да, можно скинуть код с багом и просто спросить: “почему не работает?” Она найдёт ошибку, объяснит, в чём дело, и предложит решение. Иногда даже предложит альтернативный подход, если изначально идея хромает.
Решение задач
От школьных до олимпиадных. “Реализуй сортировку” — без проблем. “Найди наибольшую возрастающую подпоследовательность”, вот вам алгоритм. “Проверь, является ли строка палиндромом” — пожалуйста. Она помогает не просто получить ответ, а разобраться в логике.
Анализ кода
Есть длинный кусок, и вы не понимаете, что он делает? Покажите его Аливии. Она прочтёт, разберёт, объяснит. Может даже выделить слабые места или предложить, как улучшить структуру.
Перевод с других языков на C#
Например, у вас есть код на Python, Java или JavaScript.
Попросите: “Перепиши это на C#”, и она спокойно переделает с учётом синтаксиса и особенностей языка.
Учитывает типизацию, классы, методы, особенности LINQ и прочее.
Поиск и устранение дублирующегося кода
Дубли — зло. ИИ поможет найти повторяющиеся блоки и вынести их в отдельные методы, классы или даже модули. Всё ради чистоты и читаемости.
Рекомендации по стилю и соблюдению стандартов
Если вы хотите писать код “как надо”, она подскажет. Расставит правильные отступы, имена переменных, форматирование.
Извлечение структуры программы из текстовых описаний
Пишите: “Программа для хранения данных о клиентах, с возможностью добавления, удаления и поиска”.
Aliviy генерирует классы, интерфейсы, поля, методы, всё по описанию. То есть, по сути, превращает текст в архитектуру.
Генерация документации
Можно попросить: “Добавь документацию к коду” и всё будет красиво выполнено.
Даже в стиле Microsoft Docs или по конкретному шаблону.
Обучение на коде
Если вы покажете примеры, ИИ подстроится. Например, вы скидываете несколько методов в своём стиле, а потом просите “напиши ещё один такой же”. Она анализирует стиль, подход и продолжает в том же духе.
Цифры и факты
Что уточнить, чтобы код подошёл проекту.
- Версии .NET выходят раз в год, и версии с долгой поддержкой чередуются с обычными — версию стоит называть в запросе.
- Код для ASP.NET Core, консольного приложения и Unity различается настолько, что универсальный пример почти всегда приходится переписывать.
- Актуальных номеров версий пакетов NuGet у нейросети нет: зависимости сверяйте с файлом проекта и документацией.
- Списывается только ответ нейросети: ваш код и стек-трейсы не тарифицируются.
Кейсы
Запрос: «Напиши скрипт для Unity: движение по горизонтали, прыжок и проверка земли, чтобы не прыгал в воздухе»

using UnityEngine;
[RequireComponent(typeof(Rigidbody2D))]
public class PlayerController : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float jumpForce = 11f;
[SerializeField] private Transform groundCheck; // пустышка под ногами
[SerializeField] private LayerMask groundLayer;
private Rigidbody2D body;
private bool isGrounded;
private float coyoteTime; // запас после схода с платформы
private void Awake() => body = GetComponent<Rigidbody2D>();
private void Update()
{
// Ввод читаем в Update: FixedUpdate вызывается реже и может
// пропустить короткое нажатие пробела.
isGrounded = Physics2D.OverlapCircle(groundCheck.position, 0.18f, groundLayer);
coyoteTime = isGrounded ? 0.12f : coyoteTime - Time.deltaTime;
if (Input.GetButtonDown("Jump") && coyoteTime > 0f)
{
body.linearVelocity = new Vector2(body.linearVelocity.x, jumpForce);
coyoteTime = 0f;
}
// короткое нажатие — низкий прыжок
if (Input.GetButtonUp("Jump") && body.linearVelocity.y > 0f)
{
body.linearVelocity = new Vector2(body.linearVelocity.x, body.linearVelocity.y * 0.5f);
}
}
private void FixedUpdate()
{
float move = Input.GetAxisRaw("Horizontal");
body.linearVelocity = new Vector2(move * speed, body.linearVelocity.y);
if (move != 0f)
{
transform.localScale = new Vector3(Mathf.Sign(move), 1f, 1f);
}
}
private void OnDrawGizmosSelected()
{
if (groundCheck != null)
{
Gizmos.DrawWireSphere(groundCheck.position, 0.18f); // видно зону проверки
}
}
}Запрос: «Нужен небольшой веб-сервис на .NET: список задач, добавление, удаление и проверка входных данных»

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<AppDb>(o => o.UseSqlite("Data Source=tasks.db"));
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.MapGet("/tasks", async (AppDb db) =>
await db.Tasks.OrderByDescending(t => t.Id).ToListAsync());
app.MapPost("/tasks", async (TaskItem item, AppDb db) =>
{
if (string.IsNullOrWhiteSpace(item.Title) || item.Title.Length > 200)
{
return Results.ValidationProblem(new Dictionary<string, string[]>
{
["title"] = ["Название обязательно и не длиннее 200 символов"]
});
}
db.Tasks.Add(item);
await db.SaveChangesAsync();
return Results.Created($"/tasks/{item.Id}", item);
});
app.MapDelete("/tasks/{id:int}", async (int id, AppDb db) =>
{
var item = await db.Tasks.FindAsync(id);
if (item is null) return Results.NotFound();
db.Tasks.Remove(item);
await db.SaveChangesAsync();
return Results.NoContent();
});
app.Run();
public class TaskItem
{
public int Id { get; set; }
public string Title { get; set; } = "";
public bool Done { get; set; }
}
public class AppDb(DbContextOptions<AppDb> options) : DbContext(options)
{
public DbSet<TaskItem> Tasks => Set<TaskItem>();
}Запрос: «Есть список заказов. Нужен отчёт: выручка по городам, средний чек и три лучших клиента»

record Order(int Id, string City, string Client, string Status, decimal Amount);
var paid = orders.Where(o => o.Status == "paid").ToList();
// выручка и количество по городам
var byCity = paid
.GroupBy(o => o.City)
.Select(g => new
{
City = g.Key,
Total = g.Sum(o => o.Amount),
Count = g.Count(),
Average = g.Average(o => o.Amount)
})
.OrderByDescending(x => x.Total);
foreach (var row in byCity)
{
Console.WriteLine($"{row.City,-16} {row.Total,12:N2} ₽ заказов: {row.Count,4} средний: {row.Average:N0} ₽");
}
// три лучших клиента
var top = paid
.GroupBy(o => o.Client)
.OrderByDescending(g => g.Sum(o => o.Amount))
.Take(3)
.Select(g => $"{g.Key} — {g.Sum(o => o.Amount):N0} ₽");
Console.WriteLine("Лидеры: " + string.Join(", ", top));
// Заказы без города в отчёт не попадут молча — их лучше увидеть
var broken = orders.Count(o => string.IsNullOrWhiteSpace(o.City));
if (broken > 0)
{
Console.WriteLine($"Внимание: у {broken} заказов не заполнен город");
}Запрос: «Нужно опросить сотню адресов. Сделай через async/await, с ограничением одновременных запросов и таймаутом»

using System.Net;
// HttpClient создаётся ОДИН раз на приложение: новый экземпляр
// в цикле выедает сокеты и через сотню запросов даст SocketException.
private static readonly HttpClient Http = new(new SocketsHttpHandler
{
PooledConnectionLifetime = TimeSpan.FromMinutes(5)
})
{
Timeout = TimeSpan.FromSeconds(15)
};
public static async Task<IReadOnlyList<(string Url, HttpStatusCode? Code, long Ms)>> CheckAsync(
IEnumerable<string> urls,
CancellationToken token = default)
{
using var limit = new SemaphoreSlim(10); // не больше 10 запросов разом
var tasks = urls.Select(async url =>
{
await limit.WaitAsync(token);
var watch = System.Diagnostics.Stopwatch.StartNew();
try
{
using var request = new HttpRequestMessage(HttpMethod.Head, url);
using var response = await Http.SendAsync(request, token);
return (url, (HttpStatusCode?)response.StatusCode, watch.ElapsedMilliseconds);
}
catch (TaskCanceledException)
{
return (url, null, watch.ElapsedMilliseconds); // не уложились в таймаут
}
catch (HttpRequestException)
{
return (url, null, watch.ElapsedMilliseconds); // домен не отвечает
}
finally
{
limit.Release();
}
});
return await Task.WhenAll(tasks);
}
foreach (var (url, code, ms) in await CheckAsync(list))
{
Console.WriteLine($"{url,-45} {code?.ToString() ?? "нет ответа",-12} {ms,5} мс");
}Запрос: «Программа падает с Unhandled exception: System.FormatException: Input string was not in a correct format. Как сделать правильно»

using System.Globalization;
/*
Причина: int.Parse и Convert.ToInt32 бросают исключение на всём,
что не число, — на пустой строке, на пробеле, на «12,5», на Enter.
Ввод пользователя такой всегда.
Было:
int age = int.Parse(Console.ReadLine()); // ← падает здесь
*/
static int ReadInt(string question, int min = int.MinValue, int max = int.MaxValue)
{
while (true)
{
Console.Write(question);
string? input = Console.ReadLine();
if (int.TryParse(input, out int value))
{
if (value >= min && value <= max)
{
return value;
}
Console.WriteLine($"Нужно число от {min} до {max}.");
}
else
{
Console.WriteLine("Это не целое число, попробуйте ещё раз.");
}
}
}
// Дробные числа: у нас разделитель запятая, в инвариантной культуре — точка.
// Без явного указания «12.5» или «12,5» упадёт в зависимости от системы.
static decimal ReadDecimal(string question)
{
while (true)
{
Console.Write(question);
string input = (Console.ReadLine() ?? "").Replace(',', '.');
if (decimal.TryParse(input, NumberStyles.Number,
CultureInfo.InvariantCulture, out decimal value))
{
return value;
}
Console.WriteLine("Введите число, например 12.5");
}
}
int age = ReadInt("Возраст: ", 1, 120);
decimal price = ReadDecimal("Цена: ");
Console.WriteLine($"Возраст: {age}, цена: {price:N2}");Итог
Генератор кода на C# берёт на себя предсказуемую часть работы: классы по описанию модели, LINQ-запросы, обработку исключений, заготовки контроллеров и тестов. Сгенерированный код нужно читать: он компилируется, но может не учитывать версию фреймворка и особенности вашего проекта. Смежное: C++, SQL, подбор стека. Объёмы — тарифы.