Nie wiem, dlaczego ten kod się nie skompiluje: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; Jeśli podzielę to, działa dobrze: var desc = isDescending ? " desc" : string.Empty; var result = $"{fieldName}{desc}";
W wersji C # 6.0 w wersji zapoznawczej VS2015 mamy nowego operatora ?., którego można użyć w następujący sposób: public class A { string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode } Co to dokładnie robi?
Stworzyłem przykładowy projekt z dodatkami C # 6.0 - propagacja zerowa i inicjalizacja właściwości jako przykład, ustaw docelową wersję .NET 4.0 i to ... działa. public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() { return …
Wersja 6.0 ma nową funkcję nameof, ale nie rozumiem jej celu, ponieważ po prostu pobiera nazwę zmiennej i zmienia ją na ciąg znaków podczas kompilacji. Myślałem, że może mieć jakiś cel podczas używania, <T>ale kiedy próbuję, po nameof(T)prostu drukuje mi Tzamiast używanego typu. Masz pomysł na cel?
Natknąłem się na kod, który powiedział public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; Teraz jestem nieco zaznajomiony z wyrażeniami Lambda. Po prostu nie widziałem, żeby używało go w ten sposób. Jaka byłaby różnica między powyższym stwierdzeniem a public int MaxHealth = x ? y:z;
Przeglądałem najnowsze funkcje wprowadzone w C # 6.0 i właśnie podążyłem za przykładem inicjalizatora właściwości auto, class NewSample { public Guid Id { get; } = Guid.NewGuid(); } ale moje IDE nie rozpoznało składni. Zastanawiam się, jak mogłem włączyć C # 6.0 w Visual Studio 2013. Korzystam ze struktury docelowej …
Zauważyłem, że chociaż interpolacja ciągów jest naprawdę przyjemna, gdy jest stosowana do wywołań formatu ciągu w istniejącej bazie kodu, biorąc pod uwagę ogólnie preferowany limit kolumn, ciąg szybko staje się zbyt długi dla pojedynczej linii. Zwłaszcza, gdy interpolowane wyrażenia są złożone. Dzięki łańcuchowi formatującemu masz listę zmiennych, które możesz podzielić …
tło Mamy projekt, który rozwijamy w VS 2015 z włączonym C # 6, który czasami musi być otwierany przez programistów używających VS 2013 bez C # 6. Nie mamy zamiaru używać C # 6 w tym konkretnym rozwiązaniu (tak bardzo, jak bym chciał). Problem Visual Studio i ReSharper sugerują pomocne …
W C # 6 pojawiła się nowa funkcja: interpolowane ciągi. Pozwalają one umieszczać wyrażenia bezpośrednio w kodzie, zamiast polegać na indeksach: string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y()); Staje się: string s = $"Adding \"{x}\" and {this.Y()} to foobar."; Jednak mamy wiele ciągów w wielu wierszach, …
Testuję program Visual Studio 2015 z C # 6.0, ale funkcje językowe nie działają. W aplikacji internetowej MVC kompiluje się następujący kod: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } Jednak po uruchomieniu aplikacji za pośrednictwem Debug i IIS Express pojawia się następujący błąd: CS1525: Nieprawidłowy termin wyrażenia „.” Jak …
W ramach dokumentacji Roslyn w serwisie GitHub znajduje się strona o nazwie Stan implementacji funkcji języka z planowanymi funkcjami językowymi dla C # i VB. Jedną z funkcji, której nie mogłem ogarnąć głowy, był private protectedmodyfikator dostępu: private protected string GetId() { … } Istnieje również strona notatek projektowych języka …
Zaktualizowałem istniejący typ projektu witryny sieci Web Visual Studio 2015, zmieniłem Framework na 4.6. Spodziewałem się wtedy, że wszystkie te nowe funkcje będą dostępne w moim kodzie za plikami. Niestety otrzymuję błędy takie jak: Błąd CS8026: Funkcja „Właściwość treści wyrażenia” nie jest dostępna w języku C # 5. Użyj wersji …
Rzucam okiem na kilka nowych funkcji w C # 6, a konkretnie na „używanie statyczne” . using static to nowy rodzaj klauzuli using, która umożliwia importowanie statycznych elementów członkowskich typów bezpośrednio do zakresu. (U dołu wpisu na blogu) Pomysł jest następujący, zgodnie z kilkoma samouczkami, które znalazłem, Zamiast: using System; …
W C # 6 możesz użyć nameof()operatora, aby uzyskać ciąg zawierający nazwę zmiennej lub typu. Czy jest to oceniane w czasie kompilacji, czy w czasie wykonywania za pośrednictwem interfejsu API Roslyn?
Chcę używać C # 6 w moim projekcie (propagacja wartości null, inne funkcje). Zainstalowałem VS 2015 na moim komputerze i działa świetnie i buduje kod testowy, taki jak var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; Ale kiedy wypycham projekt do repozytorium, a CI …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.