using System;
class IdTest {
static void Main() {
int @if; // применение ключевого слова if
//в качестве идентификатора
for (@if = 0; @if < 10; @if++)
Console.WriteLine("@if равно " + @if);
}
}
Ushbu dasturning quyidagi natijasi @ifidentifikator sifatida to'g'ri talqin qilinganligini tasdiqlaydi.
@if равно 0
@if равно 1
@if равно 2
@if равно 3
@if равно 4
@if равно 5
@if равно 6
@if равно 7
@if равно 8
@if равно 9
To'liq adolat uchun, imzolangan kalit so'zlardan @identifikator sifatida foydalanish maxsus holatlardan tashqari tavsiya etilmaydi. Bundan tashqari, belgi @har qanday identifikatordan oldin bo'lishi mumkin, ammo bu dasturlash amaliyoti yomon deb hisoblanadi.
C # identifikatorlari
Men bu erda C-Sharp-ga dars berishni boshladim, hamma narsadan hayronman, xuddi bolam kabi, birinchi sahifalaridanoq.
9-qatorga e'tibor bering, bu juda qiziq, men Unicode belgilarini (bir xil PCP) o'zgaruvchan nomlar sifatida ishlatishingiz mumkin bo'lgan tillarni uchratdim va bu erda, shuningdek, chiziq chizig'i yordamida Unicode belgilarini yozishingiz mumkin!
Masalan, men uchun o'zgaruvchining nomi sifatida men " mushukning yuzida ko'zlari xirillagan yuzi bilan " belgisini ishlataman (hamma ham ko'rmaydi - 😸). Ikkinchi identifikator yanada qiziqroq.
Agar identifikator sifatida zaxiralangan so'zni ishlatishingiz kerak bo'lsa (yaxshi, albatta, kerak, va eng mos inglizcha so'z - bu zahiralangan so'z), siz uni "doggie" so'zi bilan boshlashingiz va shu shaklda ishlatishingiz mumkin (10-qatorga qarang).
Yuqoridagi dastur tuziladi va xatosiz ishlaydi.
Va men o'tkazib yuborgan narsa: jingalak qavslar mahalliy miqyosni yaratadi (Perl singari), garchi men ushbu blokda allaqachon mahalliy blokda mavjud bo'lgan o'zgaruvchini aniqlay olmasam va faqat yopilishidan oldin hayratlanarli qoida.
Xo'sh, yaxshi, umuman olganda, bu kod tuzilmaydi , oxirgi satrda @string o'zgaruvchisi yo'qligini ko'rsatuvchi xato bo'ladi :
{
string @string = @"string ""string""";
Console.WriteLine (@string.Insert (1, "tt"));
}
Console.WriteLine (@string); // ошибка!
Men duch kelaman deb o'ylamagan narsa - avtomatik translatsiya. Go yoki C kabi bo'lishiga qandaydir ishonchim komil edi (men faqat C-Sharp haqida eshitgan edim, lekin aniq bir narsani bilmas edim) - o'zgaruvchilarni bitta turga o'zgartirishingiz kerak va shundan keyingina u bilan biror narsa qilishingiz kerak ... Hech narsa shunga o'xshamadi:
byte байтраз = 3, байтдва = 5;
// строка кода ниже выведет System.Int32 (а не System.Byte, как я ожидал)
// арифметические операции определены только для типов int и больше,
// поэтому произойдёт преобразование типов
Console.WriteLine ((байтраз + байтдва).GetType());
Console.WriteLine ("Первый байт равен: " + байтраз); // строки спокойно складываются с числами
Yana bir qiziq narsa, haddan tashqari tekshirishni o'chirib qo'yish (istisno odatiy holatda bo'ladi), ehtimol C xatti-harakatlariga muvofiqligi uchun:
int int1, int2;
unchecked {
int1 = int2 = System.Int32.MaxValue;
int1 += int2;
}
Console.WriteLine (int1); // выведет -2
Literal ( literal ) - sobit (doimiy) qiymatga ega bo'lgan dastur kodidagi yozuv. Literallar, shuningdek, ma'lumotlarning ayrim turlarini matn satrlari sifatida ifodalashni ham nazarda tutadi. Literallar yordamida C # tilida qiymatlar o'zgaruvchilarga uzatiladi.
To'g'ridan-to'g'ri turlari:
mantiqiy yoki mantiqiy;
tamsayı;
haqiqiy yoki kasr;
ramziy;
ip;
tom ma'noda massivlar;
ob'ektiv yozuvlar;
null so'zma-so'z.
Do'stlaringiz bilan baham: |