83
голосов
6ответов
15285 просмотров

Как ValueTypes происходит от Object (ReferenceType) и по-прежнему остается ValueTypes?

C # не позволяет структурам быть производными от классов, но все ValueTypes являются производными от Object.Где проводится это различие? Как среда CLR справляется с этим?

4
голосов
2ответов
494 просмотров

typeof (System.Enum) .IsClass == false

Основал: typeof(System.Enum).IsClass == false Стало странно, что System.Enum имеет также .IsValueType == false, но Reflector показывает, что на самом деле это просто abstract class. System.Enum - это ссылочный тип, такой как System.ValueType, и приведение значений перечисления к / из с...

5
голосов
8ответов
523 просмотров

Ссылки на обучение на C #

Через пару недель я обучу класс инженеров-первокурсников основным ссылкам на C # в рамках их первого курса программирования. Большинство из них никогда раньше не программировали, и у них было достаточно проблем с изучением объектов, так что обучение справочникам будет сложной задачей. Я планирую...

16
голосов
8ответов
18782 просмотров

C#, Copy one bool to another (by ref, not val)

I am at a brick wall here. Is it possible to copy one bool to the ref of another. Consider this code . . . bool a = false; bool b = a; b is now a totally separate bool with a value of false. If I subsequently change a, it will have no effect on b. Is it possible to make a = b by ref? How would...

0
голосов
1ответов
325 просмотров

Performance of Sorting Reference Type vs Value Types

We were trying to sort a collection of FileInfo objects in .NET. We implemented our IComparer to ensure that FileInfo objects were sorted based on our criteria. We then noticed that performance of sorting the FileInfo objects was many times slower than just ints. On a hunch (and remembering ho...

0
голосов
3ответов
207 просмотров

What's the size of a reference on the CLR

I was (purely out of curiosity) trying to find out what the size of an actual reference is when an allocation is made on the stack. After reading this I still don't know (this answers it only for value types or type definitions), and I still cannot seem to find it anywhere. So basically imagine...

9
голосов
3ответов
16334 просмотров

Implementing Nullable Types in Generic Interface

So in a previous question I asked about implementing a generic interface with a public class and bingo, it works. However, one of the types I'm looking to pass in is one of the built in nullable types such as: int, Guid, String, etc. Here's my Interface: public interface IOurTemplate<T, U&gt...

4
голосов
2ответов
1866 просмотров

Cloning a C# Reference Type to a Derived Reference Type

Coming from a C++ background, I am finding cloning of objects in C# a little hard to get used to. To clear up some of my confusion, I am looking for an elegant way to clone an object of a base type to a derived type. To illustrate: public class Base { public string Member1; public int ...

1
голосов
3ответов
709 просмотров

How do I pass reference types between webservices?

I'm having a bit of difficulty passing a reference type between webservices. My set up is as follows. I have a console application that references two web-services: WebServiceOne WebServiceTwo WebServiceOne declares the details of a class I am using in my console application...let's call it...

5
голосов
9ответов
1788 просмотров

C # поддерживает типы значений и ссылочные типы, но все ли они являются объектами?

Я знаю, что в C # есть как значения, так и ссылочные типы, но как это сделать: int age = 100; string blah = age.ToString(); Если age является типом значения, как он использует метод ToString? Преобразуется ли он в объект ТОЛЬКО тогда, когда это требуется для внутренних целей?

5
голосов
3ответов
1938 просмотров

Изменяемая оболочка типов значений для передачи в итераторы

Я пишу итератор, который должен передавать изменяемое целое число. public IEnumerable<T> Foo(ref int valueThatMeansSomething) { // Stuff yield return ...; } Это приводит меня к ошибке «Ошибка 476. Итераторы не могут иметь параметры ref или out». Мне нужно, чтобы это цело...

10
голосов
9ответов
7135 просмотров

Примеры использования для упаковки типа значения в C #?

Бывают случаи, когда экземпляр тип значения следует рассматривать как экземпляр ссылочного типа. Для такие ситуации, тип значения экземпляр может быть преобразован в экземпляр ссылочного типа через процесс называется боксом. Когда значение тип экземпляр упакован, хранилище р...

1
голосов
2ответов
280 просмотров

Обнуляемый <> как TModel для ViewPage

Каковы возможные причины того, какие типы Nullable <> запрещено передавать в качестве параметра TModel универсального System.Web.Mvc.ViewPage ? Иногда это может быть удобно. В источнике ASP.NET MVC определено, каким TModel должен быть класс: public class ViewPage<TModel> : View...

1
голосов
2ответов
414 просмотров

получить атрибут свойства в .NET после передачи свойства функции как ref

можно ли передать свойство, например. Person.Firstname по ссылке на функцию, а затем по-прежнему сможет читать атрибуты Person.Firstname через этот ссылочный тип? Так знает ли ссылочный тип, что это не только строка, но и свойство Firstname класса Person? Тиа Я пытаюсь написать расшир...

2
голосов
7ответов
870 просмотров

Каков самый быстрый способ узнать, содержит ли массив байтовых массивов другой байтовый массив?

У меня есть очень медленный код. Я знал, что так будет, и теперь это так. По сути, я читаю файлы из нескольких каталогов. Имена файлов меняются, а данные - нет. Чтобы определить, прочитал ли я файл, я хэширую его байты и сравниваю их со списком хэшей уже обработанных файлов. В каждом каталоге ок...

59
голосов
6ответов
24581 просмотров

Могут ли структуры содержать поля ссылочных типов

Могут ли структуры содержать поля ссылочных типов? И если они могут, это плохая практика?

4
голосов
2ответов
10079 просмотров

C # Как найти размер ссылочного типа

Мне было интересно, есть ли способ узнать размер ссылочного типа в C #. Я немного погуглил, и на форумах кажется, что это невозможно. Я подумал, что спрошу вас, ребята, и посмотрю, знает ли кто-нибудь получше. В конце концов, инструменты профилирования должны это делать? Я знаю, что эта инфор...

379
голосов
12ответов
173241 просмотров

Почему в C # String является ссылочным типом, который ведет себя как тип значения?

String является ссылочным типом, хотя он имеет большинство характеристик типа значения, таких как неизменяемость и наличие == перегрузки для сравнения текста, а не для проверки того, что они ссылаются на один и тот же объект. Почему же тогда строка не является просто типом значения?

28
голосов
4ответов
15044 просмотров

Можете ли вы иметь класс в структуре?

Возможно ли в C # иметь структуру с переменной-членом, которая является типом класса? Если да, то где хранится информация: в стеке, куче или в обоих?

709
голосов
19ответов
364285 просмотров

В чем разница между структурой и классом в .NET?

В чем разница между структурой и классом в .NET?