在上一篇 委托(Delegate)类型 中我定义public方法的时候使用了 static 关键字,导致后来无法通过 对象.方法名 的形式访问此方法,这一篇我们就具体学习下 static 静态变量。
变量:
在学习static静态变量之前,我们还是有必要来了解 变量 的意义。程序要对数据进行读、写、运算等操作,当需要保存特定的值或结果的时候就需要用到变量,在用户看来,变量是用来描述一条信息的名称,在变量中可以储存各种类型的信息,比如:人的姓名、车票的价格等等;在计算机看来,变量代表存储地址,变量是什么类型,变量中存储的数值就是什么类型。使用变量的一条重要原则就是 :变量必须先定义后使用。
在C# 中变量的定义与使用规则与C/C++类似,这里就不多说了,(所以学好C还是挺重要的^_^)
static静态变量:
带有 static 修饰符声明的变量称为静态变量,一旦静态变量所属的类被装载直到包含该类的程序运行结束时他将一直存在。static 的主要性质有两个:
1.隐藏:
在类里定义的静态方法或静态变量,属于类本身,而不属于那个类的一个对象。要想调用一个被定义为static的方法,必须在它前面加上这个类的名称。(即时是public访问修饰也不行,这也是上一篇末尾的原因) 实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。
访问规则:
静态方法只能访问类的静态成员,不能访问类的非静态成员;
非静态方法可以访问类的静态成员,也可以访问类的非静态成员;
静态方法不能使用实例来调用,只能使用类名来调用。
比如下面的例子:
class person { public static int i; //定义一个静态变量i 默认值是0 public int k=0; //定义一个非静态变量 k; public static int sbu() // 定义一个静态方法 { i = 9; //成功对静态变量赋值 k = 5; //出错了,无法访问非静态变量 return k; //综上静态方法只能访问静态变量 } public int Add() //定义一个实例方法 { i = 9; //对静态变量赋值没有问题 k = 5; //对非静态变量赋值也没问题 return i; //综上实例方法能够访问所有类型变量 } }
我们实例化一个person一个对象对方法进行访问:
static void Main(string[] args) { person per = new person(); //实例化一个对象per int i = per.i; //出错了,per访问不了类里的静态变量 int k = per.k; //没有问题 per.sbu(); //出错了,per访问不了静态方法 person.sbu(); //成功调用 per.Add(); //成功调用 person.Add(); //出错了,person访问不了实例方法 }
2.保持变量内容的持久:
存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。
写个例子就知道了(这次我用C++写了)C#不允许在方法中使用static:
#include<iostream> using namespace std; int main() { for (int i=0;i<4;i++) { static int k =0; //定义一个静态变量并赋值为0 k++; cout<<k<<endl; //输出 } return 0; }
结果:
如果上面的代码中我们去掉 static 此时k=0;变成了非静态变量,结果只会出现一个数字 1;
常量:
常量就是其质固定不变的量,从数据类型来看常量的类型可以是任意一种值类型或引用类型。一个常量的声明就是声明程序中要用到的常量名称和他的值。(用法也与C类似)但是在C#中常量一旦定义无法在改变它的值
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace demo { class Program { const int S = 9; // 定义一个常量S并赋值 static void Main(string[] args) { S += 4; //出错了,常量一旦定义就不能改变常量的值 Console.WriteLine(S); } } }
以上就是 C#学习日记20----static静态变量 与 常量的内容,更多相关内容请关注PHP中文网(www.php.cn)!

C# dan .NET menyesuaikan diri dengan keperluan teknologi baru melalui kemas kini dan pengoptimuman berterusan. 1) C# 9.0 dan .NET5 Memperkenalkan jenis rekod dan pengoptimuman prestasi. 2) .Netcore meningkatkan sokongan asli dan kontena awan. 3) ASP.Netcore mengintegrasikan dengan teknologi web moden. 4) ML.NET menyokong pembelajaran mesin dan kecerdasan buatan. 5) Pengaturcaraan Asynchronous dan Amalan Terbaik meningkatkan prestasi.

C#.netissusuitibleforenterprise-levelapplicationswithinthememicrosoftecosystemduetoitsstrongtyping, richlibraries, androbustperformance.

Proses pengaturcaraan C# dalam .NET termasuk langkah -langkah berikut: 1) Menulis C# Code, 2) Menyusun bahasa pertengahan (IL), dan 3) yang dilaksanakan oleh Runtime .NET (CLR). Kelebihan C# dalam .NET adalah sintaks moden, sistem jenis yang kuat dan integrasi yang ketat dengan Rangka Kerja .NET, sesuai untuk pelbagai senario pembangunan dari aplikasi desktop ke perkhidmatan web.

C# adalah bahasa pengaturcaraan yang berorientasikan objek moden yang dibangunkan oleh Microsoft dan sebagai sebahagian daripada Rangka Kerja .NET. 1.C# menyokong pengaturcaraan berorientasikan objek (OOP), termasuk enkapsulasi, warisan dan polimorfisme. 2. Pengaturcaraan Asynchronous dalam C# dilaksanakan melalui Async dan menunggu kata kunci untuk meningkatkan respons aplikasi. 3. Gunakan LINQ untuk memproses koleksi data dengan ringkas. 4. Kesilapan umum termasuk pengecualian rujukan null dan pengecualian indeks luar. Kemahiran penyahpepijatan termasuk menggunakan debugger dan pengendalian pengecualian. 5. Pengoptimuman Prestasi termasuk menggunakan StringBuilder dan mengelakkan pembungkusan yang tidak perlu dan unboxing.

Strategi ujian untuk aplikasi C#. NET termasuk ujian unit, ujian integrasi, dan ujian akhir-ke-akhir. 1. Ujian unit memastikan bahawa unit minimum kod berfungsi secara bebas, menggunakan rangka kerja MSTest, Nunit atau Xunit. 2. Ujian Bersepadu Mengesahkan fungsi pelbagai unit yang digabungkan, data simulasi yang biasa digunakan dan perkhidmatan luaran. 3. Ujian akhir-ke-akhir mensimulasikan proses operasi lengkap pengguna, dan selenium biasanya digunakan untuk ujian automatik.

Temu bual dengan pemaju kanan C# memerlukan menguasai pengetahuan teras seperti pengaturcaraan asynchronous, LINQ, dan prinsip kerja dalaman Rangka .NET. 1. Pengaturcaraan Asynchronous memudahkan operasi melalui async dan menunggu untuk meningkatkan respons aplikasi. 2.Linq mengendalikan data dalam gaya SQL dan perhatikan prestasi. 3. CLR kerangka bersih menguruskan ingatan, dan pengumpulan sampah perlu digunakan dengan berhati -hati.

C#.NET Soalan dan jawapan wawancara termasuk pengetahuan asas, konsep teras, dan penggunaan lanjutan. 1) Pengetahuan asas: C# adalah bahasa berorientasikan objek yang dibangunkan oleh Microsoft dan digunakan terutamanya dalam rangka .NET. 2) Konsep teras: Delegasi dan peristiwa membolehkan kaedah mengikat dinamik, dan LINQ menyediakan fungsi pertanyaan yang kuat. 3) Penggunaan Lanjutan: Pengaturcaraan Asynchronous meningkatkan respons, dan pokok ekspresi digunakan untuk pembinaan kod dinamik.

C#.NET adalah pilihan yang popular untuk membina microservices kerana ekosistem yang kuat dan sokongan yang kaya. 1) Buat RestfulAPi menggunakan ASP.Netcore untuk memproses penciptaan pesanan dan pertanyaan. 2) Gunakan GRPC untuk mencapai komunikasi yang cekap antara microservices, menentukan dan melaksanakan perkhidmatan pesanan. 3) Memudahkan penggunaan dan pengurusan melalui microservices kontena Docker.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft