代碼中必須就棧的大小有明確的定義疼约;堆是程序運(yùn)行期間動態(tài)分配的內(nèi)存空間包斑,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小
程序執(zhí)行的時候屏镊,在棧和堆中分配有四種主要的類型:值類型茸时,引用類型针史,指針晶伦,指令。
繼承自System.ValueType的類型被稱為值類型啄枕,
引用類型:繼承自System.Object: class婚陪、 interface、 delegate频祝、 object泌参、 string。
當(dāng)我們使用引用類型的時候常空,一般是對指針進(jìn)行的操作而非引用類型對象本身沽一。但是值類型則操作其本身。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DuiZhan
{
class Program
{
static void Main(string[] args)
{
int ReturnValue2()
{
MyInt x = new MyInt();
x.MyValue = 3;
MyInt y = new MyInt();
y = x;
y.MyValue = 4;
return x.MyValue;
}
Console.WriteLine(ReturnValue2());
Console.ReadKey();
}
}
public class MyInt
{
public int MyValue;
}
}
is:檢查對象是否與給定類型兼容漓糙。is就是處于對類型的判斷铣缠。is操作符永遠(yuǎn)不會拋出異常。
如果對象引用為null,那么is操作符總是返回為false蝗蛙。
as 運(yùn)算符:用于在兼容的引用類型之間執(zhí)行轉(zhuǎn)換蝇庭。
檢查對象類型的兼容性,并返回轉(zhuǎn)換結(jié)果捡硅,如果不兼容則返回null;
不好拋出異常遗契; 如果結(jié)果判斷為空,則強(qiáng)制執(zhí)行類型轉(zhuǎn)換將拋出NullReferenceException異常病曾;