Как добавить мой собственный тип данных в программе C#?

Как "интервал" относится к классу "Int32", "строка" относится для "Представления класса в виде строки". Как отослать тип данных как "abc" к моему классу "Abc"?

9
задан Mark Canlas 19 July 2010 в 11:49
поделиться

6 ответов

Ваш «класс» - это тип данных.

Приведенные вами примеры показывают разницу между именами типов данных CLR и именами типов данных C #. Это псевдонимы. C # int сопоставляется с CLR Int32, а строка C # сопоставляется с CLR String.

Вы можете создавать свои собственные псевдонимы, используя «using Xyx = Abc». Вы должны сделать это в каждом исходном файле, так что это не так уж и полезно.

17
ответ дан 4 December 2019 в 06:22
поделиться

типы, такие как int и т. Д., Встроены в типы / зарезервированные ключевые слова. Они определяются компилятором, поэтому добавить свои собственные невозможно.

2
ответ дан 4 December 2019 в 06:22
поделиться
using abc = MyNamespace.Abc;

Я не уверен, в чем будет преимущество этого, обычно он используется, если вы находите разные типы с одним и тем же именем.

5
ответ дан 4 December 2019 в 06:22
поделиться

Функция, которую вы ищете, вероятно, является чем-то, к чему вы привыкли в C ++. В C # нет эквивалентной концепции. Все, что у вас есть, - это встроенный тип данных. Единственное, что вы можете объявить, - это ваш собственный класс или структура, но не тип данных.

0
ответ дан 4 December 2019 в 06:22
поделиться

Вы можете добавить псевдоним следующим образом:

using abc = MyNamespace.Abc;

Но я бы задался вопросом, зачем вам это нужно.

[Другой постер указал на правильное использование, а именно столкновение типов в пространстве имен, но тогда я бы всегда использовал полное имя типа, иначе это может привести к путанице]

.
10
ответ дан 4 December 2019 в 06:22
поделиться

Вы совершенно неправильно понимаете, что такое "тип данных". В C# ключевые слова типа int, string, и т.д. являются просто псевдонимами для соответствующих типов (реализованных в виде классов/структур), уже присутствующих в CLR. Например, int имеет точно такое же значение, как System.Int32, который является структурой, определенной ядром .NET framework. Аналогично, string означает просто System.String, который является классом.

В .NET каждый "тип данных" в конечном итоге наследуется от System.Object (который в C# называется object). Типы данных, на которые вы ссылаетесь, являются просто предварительно реализованными классами и структурами, которые наследуются от System.Object; в них нет ничего особенного. Вы должны понимать, что в C# нет специальных примитивных типов, как в других языках: все они являются частью общей иерархии типов. Ключевые слова, к которым вы привыкли, просто предоставляются для удобства.

По сути, не беспокойтесь об этом. Ваши классы можно использовать так, как они есть, и именно так они и должны использоваться.

Немного чтения:

5
ответ дан 4 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: