using System;
using System.Diagnostics;
using System.Reflection;
namespace ConsoleApp
{
class Program
{
private delegate ref int GetMaxNumber(ref int value1, ref int value2);
static void Main(string[] args)
{
int value1 = 5;
int value2 = 10;
var instance = new Something();
MethodInfo? methodInfo = typeof(Something).GetMethod(
nameof(Something.GetMax), BindingFlags.Public | BindingFlags.Instance);
Debug.Assert(methodInfo is not null);
var setNumber = (GetMaxNumber)Delegate.CreateDelegate(typeof(GetMaxNumber), instance, methodInfo);
setNumber.Invoke(ref value1, ref value2) = 50;
Console.WriteLine($"{nameof(value1)}: {value1}, {nameof(value2)}: {value2}");
}
}
public class Something
{
public ref int GetMax(ref int left, ref int right)
{
if (left > right)
{
return ref left;
}
return ref right;
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
^
- это операция XOR. XOR вернёт единицу в том случае, если один из операндов (битов) 1 а другой 0. Таким образом, к примеру, 3 ^ 5
вернет 6 потому, что 0b011 ^ 0b101
(для простоты, биты будем считать слева направо):0 ^ 1 = 1
.1 ^ 0 = 1
.1 ^ 1 = 0
.0b110 = 6
.undefined ^ N
или 0 ^ N
, что вернёт нам само число. Как начать зарабатывать начинающему web-разработчику в 17 лет?
зарабатывать на вебе
Хочу устроиться джуном в веб-студию удаленно
Может устроиться к кому-нибудь на фриланс
Как начать зарабатывать на фрилансе?