[問題] struct的一個問題
public class A
{
public int a;
}
public struct B
{
public int b;
}
public class practice02
{
static public void D(A xxx){
xxx.a = 0;
}
static public void E(B yyy)
{
yyy.b = 0;
}
public static void Main(string[] args)
{
A aaa = new A();
B bbb = new B();
aaa.a = 5;
bbb.b = 5;
D(aaa);
E(bbb);
Console.WriteLine(aaa.a); //5->0
Console.WriteLine(bbb.b); //5->5
Console.ReadKey();
}
}
我的問題是為何E(bbb)不會改變bbb.b的值
也就是struct和class在這裡有啥不同之處呢 = =
上網查了一下只知道struct和class的default access level
不過這裡已經都宣告public了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.74.232
※ 編輯: lovemsms 來自: 111.252.74.232 (10/23 17:29)
推
10/23 17:58, , 1F
10/23 17:58, 1F
→
10/23 17:59, , 2F
10/23 17:59, 2F
謝謝 不過因為我有學過C++ 所以將片段程式碼改為
static public void E(B* yyy) //改為傳指標
{
yyy->b = 0;
}
然後將Main底下改用傳址
E(&bbb); //改為傳址
出現錯誤
指標和固定大小緩衝區只能使用於 unsafe 內容中
然後按照網路上說明將屬性->建置 裡面將容許unsafe程式碼打勾
不過還是無解......
※ 編輯: lovemsms 來自: 111.252.74.232 (10/23 18:53)
推
10/23 22:20, , 3F
10/23 22:20, 3F
→
10/23 22:21, , 4F
10/23 22:21, 4F
推
10/27 11:04, , 5F
10/27 11:04, 5F
推
10/27 11:06, , 6F
10/27 11:06, 6F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章