C# в вопросах и задачах
7 subscribers
3 photos
Вопросы, которые могут встретиться при собеседовании на бэкенд разработчика: C#, .Net, SQL, Docker, SOLID и прочее
Download Telegram
Channel name was changed to «C# в вопросах и задачах»
public class Celebrity
{
public string? Name { get; set; }
public int Age { get; set; }

public override string ToString() => $"{Name}: {Age}";

public void Test()
{
var celebrity = new Celebrity { Name = "Jennifer Aniston", Age = 54 };
ChangeCelebrity(celebrity);

Console.WriteLine(celebrity);
}

static void ChangeCelebrity(Celebrity celebrity)
{
celebrity.Name = "Brad Pitt";
celebrity.Age = 60;

celebrity = new Celebrity { Name = "Angelina Jolie", Age = 48 };
}
}

#csharp #referencetype
public record struct Celebrity2(string Name)
{
public override string ToString() => Name;

public void Test()
{
var celebrity = new Celebrity2("Jennifer Aniston");
ChangeCelebrity(celebrity);

Console.WriteLine(celebrity);
}

static void ChangeCelebrity(Celebrity2 celebrity)
{
celebrity.Name = "Brad Pitt";
celebrity = new Celebrity2("Angelina Jolie");
}
}

#csharp #valuetype
public async Task Test()
{
try
{
await Task.Factory.StartNew<int>(() => throw new Exception())
.ContinueWith(x => 2 * 2)
.ContinueWith(x => Math.Sqrt(x.Result))
.ContinueWith(x => Console.WriteLine(x.Result));
}
catch (AggregateException)
{
Console.WriteLine(nameof(AggregateException));
}
catch (Exception)
{
Console.WriteLine(nameof(Exception));
}
}

#csharp #task #async
abstract class A
{
public abstract string GetName();
}

class B : A
{
public override string GetName() => nameof(B);
}

class C : B
{
public new string GetName() => nameof(C);
}

public void Test()
{
A b = new B();
A c = new C();
Console.WriteLine(b.GetName() + c.GetName());
}

#csharp #inheritance
private object _lock = new();
private int _counter;

public async Task Test()
{
Task.WhenAll(
Increment(),
Increment(),
Increment());

Console.WriteLine(_counter);
}

async Task Increment()
{
lock (_lock)
{
await Task.Delay(1000);
_counter++;
}
}

#csharp #lock #async
public void Test()
{
try
{
using (null)
{
Console.Write("I'm in");
return;
}

Console.Write("I'm out");
}
catch (Exception)
{
Console.Write(nameof(Exception));
}
}

#csharp #using