Dla Hardcore C# koderów tutaj, może to wydawać się zupełnie głupie pytanie - ale ja właśnie natknąłem się na fragmencie kodu próbki w forum AWS SDK i został całkowicie sideswiped przez niego:C# syntax sugar - nowy sposób ustawiania atrybutów obiektów?
RunInstancesRequest runInstance = new RunInstancesRequest()
.WithMinCount(1)
.WithMaxCount(1)
.WithImageId(GetXMLElement("ami"))
.WithInstanceType("t1.micro");
Jest bardzo przypomina starą składnię VB6 With ... End With
, którą od dawna ubolewałem nad brakiem w C# - skompilowałem ją w moim projekcie VS2008 i działa to przyjemnie, oszczędzając liczne oddzielne linie odnoszące się do tych atrybutów indywidualnie.
Jestem pewien, że czytałem artykuły w przeszłości wyjaśniają dlaczego VB6 stylu With
-blok nie było w języku C#, więc moje pytanie brzmi: czy tej składni zawsze istniała w języku, czy jest to ostatnia zmiana .NET, która ją włączyła? Czy możemy pokryć wszystkie wystąpienia obiektów, a następnie zmiany atrybutów w tym samym cukrze?
No pewnie, można wdrożyć wszystko te metody, jeśli chcesz. Ale dlaczego nie wystarczy użyć składni inicjalizatora obiektu? –
Doskonałe odpowiedzi tutaj, ale mogę tylko zaakceptować jedną - więc na razie to właśnie odnosi się do * Fluent Interfacing *, ponieważ przykład w artykule jasno wyjaśnia, co się dzieje. Czuję się nieco zawstydzony, że nie wykonałem intuicyjnego połączenia, zauważając, że linia jako całość ma postać "A.B.C.D;", ale nigdy wcześniej nie widziałem tej techniki. Kolejny sznur do łuku! :) –