ch
Feedback
C#/.Net на практике

C#/.Net на практике

关闭频道

C# .Net тесты @notxxx1 - по всем вопросам https://t.me/+B0j7cCEldMFlOTQy - ссылка на канал

显示更多
1 965
订阅者
无数据24 小时
-37
-730
帖子存档
Что выведет код? using System; class Program { static void Main() { int x = 10; Console.WriteLine(x++ + ++x); } } Правильный
Что выведет код?

using System;

class Program
{
    static void Main()
    {
        int x = 10;

        Console.WriteLine(x++ + ++x);
    }
}
Правильный ответ: 22 Почему: выражение считается слева направо. Сначала x++ возвращает 10, но потом увеличивает x до 11. Затем ++x сначала увеличивает x до 12, потом возвращает 12. В итоге 10 + 12 = 22.

Что выведет на экран этот код?
Anonymous voting

#ПятичныйКвиз
#ПятичныйКвиз

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

В какой строке возникнет первое исключение?
Anonymous voting

В какой строке возникнет первое исключение? #ПятничныйКвиз
В какой строке возникнет первое исключение? #ПятничныйКвиз

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

✔️ Задача C# и ASP.NET Core В проде под нагрузкой API начинает подвисать, медиана ответа растёт с 40 мс до 400 мс, а иногда и
✔️ Задача C# и ASP.NET Core В проде под нагрузкой API начинает подвисать, медиана ответа растёт с 40 мс до 400 мс, а иногда и выше. Логи показывают, что в горячем месте встречается такой


public async Task<User> GetUserAsync(int id)
{
    using var conn = new SqlConnection(_conn);
    conn.Open(); // 👈 синхронный блокирующий вызов

    var cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM Users WHERE Id = @id";
    cmd.Parameters.AddWithValue("@id", id);

    using var reader = cmd.ExecuteReader(); // 👈 тоже блокировка

    if (await reader.ReadAsync())
        return Map(reader);

    return null;
}
Под нагрузкой резко растёт: - очередь ThreadPool - количество заблокированных потоков - p99 latency Какой вариант исправления правильный? 1. Заменить ExecuteReader на ExecuteReaderAsync, но оставить conn.Open() как есть. 2. Вынести всё выполнение в Task.Run и пусть код работает на отдельных потоках. 3. Переписать весь путь на асинхронный: использовать OpenAsync, ExecuteReaderAsync и полностью убрать sync-over-async. Как думаешь, какой вариант правильный?

Какая из строк вызовет ошибку компиляции?
Anonymous voting

❓ Какая из строк (помечены комментариями) вызовет ошибку компиляции?
interface IList
    {
        int Count { get; set; }
    }
 
    interface ICounter
    {
        void Count(int i);
    }
 
    interface IListCounter:IList, ICounter { }
 
    class C
    {
        void Test(IListCounter x)   //1
        {     
          x.Count(1);           //2
          x.Count = 1;          //3
        }
    }
    public class Program
    {
        private static void Main(string[] args)
        {
 
        }
}

Что выведен на экран это код?
Anonymous voting

#ПятничныйКвиз #ДляСамыхМаленьких
#ПятничныйКвиз #ДляСамыхМаленьких

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз #ДляСамыхМаленьких
#ПятничныйКвиз #ДляСамыхМаленьких

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз #ЭтоВамНеJS
#ПятничныйКвиз #ЭтоВамНеJS

Какое исключение выдается, если протокол, поддерживаемый префиксом URI, недействителен?
Anonymous voting