C#: перегруженный оператор сравнения

компьютеры программирование C# операторы

Есть следующий код
public class Item {
//MyFields
}

public class ItemCapsule {
public Item MyItem { get; set; };
}

Очень простой, правда?
Так вот, вопрос то чуть чуть буквально сложнее, но я не допираю.

Где-то извне пишется код:

ItemCapsule itemCapsule;
if (itemCapsule != null && itemCapsule.MyItem != null) {
//action
}

А я хочу, чтобы при том же смысле можно было писать так:

ItemCapsule itemCapsule;
if (itemCapsule != null) {
//action
}

Соответственно создал в классе ItemCapsule два метода

public static bool operator ==(ItemSlot slot, ???? что здесь вписать ????)
{
return ???? что здесь вписать ????;
}

public static bool operator !=(ItemSlot slot, ???? что здесь вписать ????)
{
return ???? что здесь вписать ????;
}

Честно, думал, гадал, но не придумал.

Примечание:
опечатался в конце - ItemSlot и ItemCapsule - это одно и тоже
Ответы:
public static bool operator ==(ItemSlot slot, object slot2)
{
   if(slot2 == null)
       return slot == null || slot1.MyItem == null;
   throw new InvalidArgumentException;
}


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.