差別
靜态類與非靜态類的重要差別在于==靜态類不能執行個體化==,也就是說,不能使用 new 關鍵字建立靜态類類型的變量。在聲明一個類時使用static關鍵字,具有兩個方面的意義:首先,它防止程式員寫代碼來執行個體化該靜态類;其次,它防止在類的内部聲明任何執行個體字段或方法。
特點
1、靜态類中隻能包含 靜态成員(構造方法、字段、屬性),在靜态類中無法執行個體化
下面這些是測試
1.1 靜态類中聲明靜态變量
錯誤示範

執行個體成員就是需要執行個體化以後才能用的(我這個類要New才能用)
我們給這個變量加上static以後就可以用了,變成靜态變量了
1.2 靜态類中聲明靜态方法
我們在靜态類中搞一個帶參函數
加個static
我們看下如何輸出靜态方法和靜态變量,把上面兩個輸出一下
StaticClass1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StatacTest
{
public static class StaticClass1
{
public static string name = "lucky";
public static int returnAge(int age)
{
return age;
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StatacTest
{
class Program
{
static void Main(string[] args)
{
//輸出靜态類中的靜态變量和靜态方法
Console.WriteLine(StaticClass1.returnAge(6));
Console.WriteLine(StaticClass1.name);
}
}
}
2、在非靜态類中可以聲明靜态類成員
NoStaticClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StatacTest
{
class NoStaticClass
{
public static char sex='男';
public static int PrintTel(int tel)
{
return tel;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StatacTest
{
class Program
{
static void Main(string[] args)
{
//輸出非靜态類中的靜态變量和靜态方法
Console.WriteLine(NoStaticClass.sex);
Console.WriteLine(NoStaticClass.PrintTel(66666666));
}
}
}
我們把NoStaticClass.cs裡面的static去掉
在輸出腳本上馬上就報錯了
需要執行個體化以後才能搞