value-type

W C#, dlaczego String jest typem odniesienia, który zachowuje się jak typ wartości?

String jest typem odniesienia, mimo że ma większość cech typu wartości, takich jak niezmienność i przeciążenie == w celu porównania tekstu, a nie upewnienie się, że odwołuje się do tego samego obiektu. Dlaczego string nie jest tylko typem wartości?

W jaki sposób Valuetypy wywodzą się z obiektu (ReferenceType) i nadal są Valuetypami?

C # nie pozwala strukturom wywodzić się z klas, ale wszystkie typy wartości wywodzą się z obiektu. Gdzie jest to rozróżnienie? Jak sobie z tym radzi CLR?

Boks w C#

Staram się zebrać wszystkie sytuacje, w których Boks występuje w C#: Konwersja typu wartości na typ System.Object: stru ... tymalizowane przez JIT w niektórych. NET runtimes Czy są jeszcze jakieś sytuacje bokserskie, może Ukryte, o których wiesz?

Jaka jest różnica między typem odniesienia a typem wartości w c#?

Jakiś facet zadał mi to pytanie kilka miesięcy temu i nie mogłem wyjaśnić tego szczegółowo. Jaka jest różnica między typem od ... i typami referencyjnymi są delegate, interface, itd. Czy to też jest złe? Czy możesz mi to wyjaśnić w profesjonalny sposób?

Szybka i mutująca struktura

Jest coś, czego nie do końca rozumiem, jeśli chodzi o mutowanie typów wartości w języku Swift. Jako" język programowania Swi ... struktury nie mogą zmieniać swojej treści z własnego kontekstu, Podczas gdy zawartość może być łatwo zmieniona gdzie indziej?

Szczegółowe wyjaśnienie wychwytywania zmiennych w zamknięciach

Widziałem niezliczone posty na temat tego, jak variable capture przyciąga zmienne do tworzenia zamknięcia, jednak wszystkie w ... iższą sercu tego, co dzieje się wewnętrznie), chociaż przyjmę jasną odpowiedź obejmującą wartości i odniesienia, jak również.

Czy typy wartości są niezmienne z definicji?

Często czytam, że struct s powinny być niezmienne-czyż nie są z definicji? Czy uważasz int za niezmienne? int i = 0; i = i ... przepisanie wszystkich zdarzeń z foo.DoStuff(whatEverArgumentsYouLike); Z foo = foo.DoStuff(whatEverArgumentsYouLike);

Dlaczego nie ma RAII in.NET?

Będąc przede wszystkim programistą C++, Brak RAII (pozyskiwanie zasobów jest inicjalizacją) w Javie i. NET zawsze mi przeszka ... o pochodzenia. Możesz wziąć moją deterministyczną destrukcję, kiedy moja zimna Martwa ręka wyjdzie poza zasięg. -- Anon

Jak sprawić, by typ wartości był nullable with.NET XmlSerializer?

Załóżmy, że mam ten obiekt: [Serializable] public class MyClass { public int Age { get; set; } public int MyClassB ... ałbym uciec bez tego. W aplikacji obiekt jest znacznie bardziej złożony i chciałbym nie zajmować się serializacją osobiście.

AnyObject I Any in Swift

Nie rozumiem kiedy używać AnyObject a kiedy user Any W Swift. Moja sprawa, mam słownik [String: ???] ??? : Can be In ... ing, Array, Dictionary Ktoś może mi wyjaśnić różnicę między Any A AnyObject i wiedźmę, którą użyję w moim przypadku. Alak

Dlaczego delegaci są typami referencyjnymi?

Krótka uwaga na zaakceptowaną odpowiedź : nie zgadzam się z małą częścią odpowiedzi Jeffreya , a mianowicie z punktem, że pon ... wspierający zamknięcie plus Action delegat)? *tak, tak, szczegóły realizacji, wiem! Chodzi mi tylko o pamięć krótkotrwałą.

Najbardziej efektywny sposób sprawdzania, czy obiekt jest typem wartości

UWAGA: TEN KOD JEST DO BANI, ZOBACZ KOMENTARZE ANTHONY ' EGO Co jest szybsze? 1. public bool IsValueType<T>(T ob ... .IsValueType; } 3. public bool IsValueType<T>(T obj){ return default(T) != null; } 4.Something else

Metody rozszerzeń zdefiniowane na typach wartości nie mogą być używane do tworzenia delegatów - dlaczego nie?

Metody rozszerzenia mogą być przypisane do delegatów, które pasują do ich użycia na obiekcie, jak poniżej: static class Fun ... rozszerzenia.Double (int) " definiowane na wartości typu 'int' nie można użyć do tworzenia delegatów. Dlaczego nie mogą?

Enum to typ odniesienia czy typ wartości?

Użyłem właściwości Enum w mojej klasie EntityFramework 5, ale w bazie danych to pole jest nullable. Visual studio wyświetla ... d, że ta właściwość musi być właściwością nullable. Moje pytanie brzmi: czy Enum jest typem referencyjnym czy typem wartości?

Porównując rodzajnik z null, który może być wartością lub typem odniesienia?

public void DoFoo<T>(T foo) where T : ISomeInterface<T> { //possible compare of value type with 'null'. i ... że pojawi się z tego jakiś problem? co naprawdę dzieje się pod maską, gdy wykonuję połączenie i przekazuję w typie wartości?

Struktury, Interfejsy i boks [duplikat]

Możliwy duplikat:czy implementacja interfejsów przez struktury jest Bezpieczna? Weź ten kod: interface ISomeInterf ... } A potem robię to gdzieś: ISomeInterface someVariable = new SomeStruct(2); Czy SomeStruct jest w tym przypadku boxed?

Zmiana wartości elementu na liście struktur

Mam listę struktur i chcę zmienić jeden element. Na przykład: MyList.Add(new MyStruct("john"); MyList.Add(new MyStruct("pet ... winienem traktować je jako tylko do odczytu? Jeśli muszę zmienić elementy na liście, to powinienem użyć klas, a nie struktur?

Czy wywołanie metody na typie wartości powoduje Boks in.NET?

Właśnie uczestniczyłem w pytaniu o przepełnienie stosuCzy wszystko w. NET jest obiektem?. I jeden plakat (w komentarzach zaa ... tuje metody następnie PST jest dereferowany, boxed i przekazywane jako " ten " wskaźnik do Instrukcja metody callvirt.

Czy obiekt jest typem odniesienia czy typem wartości?

Nadal mam wątpliwości co do object. Jest podstawową klasą bazową czegokolwiek, każdej klasy. Ale czy jest to typ odniesienia ... ieścisz. Informatyka może być zarówno typem odniesienia, jak i typem wartości. Chodzi o to, co boksujesz w środku. Mam rację?