Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого.
int result = 1 + 2;
x = 10;
// = - operator
// x - left hand operand
// 10 - right hand operand
x = y + z;
// = - operator
// x - left hand operand
// (y + z) - right hand operand
// + - operator
// y - left hand operand
// z - right hand operand
bool isValid = true;
bool hasErrors = false;
_:ushort s1 = 0b1011_1100_1011_0011;
int x1 = 0x44aa_abcd;
public string this[string key] {
get { return internalDictionary[key]; }
}
// Usage: something["x"]params:public string this[params string[] keys] {
get { return internalDictionary[key]; }
}
// Usage: something["x", "y", "z"]var x = "y";
dynamic m = "n";
string t = nameof(x);
async, dynamic, global, join, value, await, select, var, get, nameof, set и другие.@ следующим образом:var var = "";
bool async = false;
string dynamic = "";
int get = 1;
name != Name;string имя = ""; и class 国家 { } вполне себе валидные идентификаторы, но делать так без необходимости противопоказано ⛔️ То же относится и к именованию файлов в вашем проекте;@ в качестве префикса в имени идентификатора, однако, без веских на то причин, я вам так же порекомендую этого не делать:class @class
{
int @int;
string @default;
}
string.Format("{0} is {1} yrs old.", name, age);Console.Write("{0} is {1} yrs old.", name, age);Console.SetWindowSize(w, h) 🙂object[] args.object[] args = { "London", 2017, 8825000 };
string res = string.Format("{0}'s population in {1} is {2:0,0}.", args);London's population in 2017 is 8.825.000.
Console.Title вы можете изменять имя окна вашего консольного приложения и даже сделать его анимированным? 😀string name = "C# channel";
int age = 1;
string res = string.Format("{0} is {1} yrs old.", name, age);
// Output:
// C# channel is 1 yrs old.
C2 как пример денежного формата:decimal value = 123.456m;
Console.WriteLine("Your account balance is {0:C2}.", value);
// Output:
// Your account balance is $123.46.
Console.WriteLine("{0,-20} {1,5}\n", "Name", "Hours");Properties > Debug > Command line arguments.void Main(string[] args)
void Main(string[] args)
{
// List all arguments
foreach (string arg in args) {
Console.Write(string.Format("Arg: {0}", arg));
}
// Use 1st argument as filename
if (args.Length > 0) {
string name = args[0];
Console.Write(string.Format("File={0}", name));
}
}
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64Main must be static and it need not be public.
🔶 Почему может? Потому что язык C# и платформа .NET не накладывают никаких ограничений на модификаторы доступа для метода Main и следующий код будет успешно скомпилирован:class Program🔶 Почему не рекомендуется? Потому что предполагается, что данный метод будет вызван лишь 1 раз исполняющей средой (CLR) и является точкой входа в ваше приложение.
{
static public void Main()
{
Console.WriteLine("This would compile..");
}
}
public, он станет доступен для вызова из других частей вашего приложения.class ProgramНужно это в первую очередь для того, чтобы код, вызывающий нашу программу, имел возможность отреагировать на результат её выполнения.
{
static int Main()
{
if (DateTime.Today.DayOfWeek == DayOfWeek.Monday)
return -1; // Monday is bad
else
return 0;
}
}
dotnet run💬 А знаете ли вы, что alias void в языке C# соответствует структуре public struct Void из сборки System? 😉
if ($LastExitCode -eq 0) {
Write-Host "Execution succeeded"
} else
{
Write-Host "Execution Failed"
}
Write-Host "Return value = " $LastExitCode