我寫了一個類和 2 個新的建構式,但num
它的值只增加了 1 次,我不知道為什么。
using System;
Program1 one = new Program1("name1");
Program1 two = new Program1("name2");
class Program1
{
private int num = 0;
public Program1(string name)
{
num ;
Console.WriteLine($"It is your {num} object");
Console.WriteLine($"{name} is your object");
}
}
安慰:
It is your 1 object
name1 is your object
It is your 1 object
name2 is your object
uj5u.com熱心網友回復:
目前,num
是該類的實體成員。因此,每次創建新實體時,num
都是一個具有自己值的不同欄位。
如果您希望其值增加而不管實體如何,您可以將其轉換為static
欄位或屬性:
private static int num = 0;
現在,每次呼叫new Program1(someString)
, 的值num
都會增加。
請注意,在這種情況下,每個實體都不會有自己的num
. 為了測驗這一點,讓我們在類中添加以下方法
public void PrintNum()
{
Console.WriteLine(num);
}
現在,下面的代碼:
Program1 one = new Program1("name1");
Program1 two = new Program1("name2");
Console.Write("one.PrintNum: "); one.PrintNum();
Console.Write("two.PrintNum: "); two.PrintNum();
...將產生:
It is your 1 object
name1 is your object
It is your 2 object
name2 is your object
one.PrintNum: 2
two.PrintNum: 2
uj5u.com熱心網友回復:
這是因為num
is not static,one.num
并且two.num
是 Program1 不同實體中的變數。
如果您想num
在 Program1 的所有實體中具有相同的值,您可以嘗試
class Program1
{
private static int num = 0;
public Program1(string name)
{
num ;
Console.WriteLine($"It is your {num} object");
Console.WriteLine($"{name} is your object");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/515713.html
標籤:C#安慰
下一篇:訪問A類中的串列