Недавно я случайно написал следующее утверждение:
MyCollection myCollection = new MyCollection();
SomeMethod(myCollection.SomeVoidOperation());
Глупо мне потребовалось некоторое время, чтобы понять, почему это не сработало (имел мозговый вылет), но потом это заставило меня задуматься;почему такое утверждение на самом деле недопустимо в любом общем контексте синтаксиса типа C?
Я понимаю, что могу выполнить те же функции с помощью цепочки методов, но я не понимаю, почему такая функция не (илиможет быть, не может быть реализовано?Мне кажется, что цель ясна, и я пытался, но не вижу никакой двусмысленности, которую это может создать.Я уверен, что есть несколько веских причин (или что-то, чего мне не хватает), и, надеюсь, кто-то может указать мне на это.
Итак, почему нельзя выполнить операцию как частьназначение?
ОБНОВЛЕНИЕ:
Я понимаю, почему это не работает.IE: у меня есть метод, который ожидает некоторый параметр, и я вызываю метод, который ничего не возвращает - но вы упускаете мою точку зрения ... Я вижу этот код как два утверждения, один из которых - myCollection (IE: экземпляр) ивторой - «вызвать этот метод».
Вот более полный пример:
public class Stock
{
public Guid ID { get; set; }
public string Description { get; set; }
}
public class StockList : List<Stock>
{
public void SomeSortOperation() { }
}
public void SomeMethod(StockList stockList)
{
}
StockList myList = new StockList();
SomeMethod(myList.SomeSortOperation());