我正在爲它的樂趣開發一個小遊戲,我偶然發現了一個令人困惑的時刻,C#的操作符。下面是代碼:C#操作符'是'參數
public static InventorySlot FindSlotWithItem(this IInventory inventory, Type itemType)
{
return inventory.InventorySlots.FirstOrDefault(t => t is itemType);
}
既然這樣,這個代碼不編譯因爲我的Visual Studio告訴我,類型或命名空間名稱ITEMTYPE'找不到。我想知道爲什麼,並且在MSDN上尋找了一些信息。這裏是我發現的:
是(C#參考): 檢查對象是否與給定類型兼容。例如,下面的代碼能夠確定對象是否是爲MyObject類型的實例,或從MyObject的
派生
類型和這些行讓我更糊塗了,因爲我清楚地傳遞一個對象作爲第參數和類型作爲第二個。我知道這與編譯器查找名爲'itemType'的類型有關,但這不完全是我想要的行爲。
請告訴我爲什麼這樣的語法不起作用,爲什麼'itemType'不被'is'操作符視爲一種類型。
這就是我真正想知道的。感謝你的回答。 –