2010-07-19 4 views
8

Как «int» относится к классу «Int32», «строка» относится к классу «String». Как передать тип данных как «abc» в мой класс «Abc»?Как добавить свой собственный тип данных в программу на C#?

+7

Почему вы даже хотите это сделать? –

+8

@Mitch Wheat - возможно, иметь синий шрифт в VS;) – prostynick

+0

, чтобы создать тип данных, который доступен для других программистов, используемых моим классом. – chanchal1987

ответ

14

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

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

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

+0

Думаю, я должен был использовать CTS здесь, а не CLR. Виноват. –

+0

Но визуальная студия обнаруживает мой класс как «класс» и окрашена как класс. Но типы данных различаются в Visual Studio. – chanchal1987

+4

Неверный. Все классы - это типы данных. VS выделяет зарезервированные слова C# в темно-синем и все другие типы данных в бледно-голубом. Синяя подсветка не имеет ничего общего с различием между классами и типами. –

2

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

+0

я не думаю вот что плакат спрашивает ... –

+1

not my downvote btw –

9

Вы можете добавить псевдоним, как это:

using abc = MyNamespace.Abc; 

Но я бы вопрос, почему вы хотели бы сделать это.

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

+0

Creepy ... Я даже использовал одно и то же имя пространства имен – fletcher

+0

@fletcher: да, это жутко! Тем более, что я никогда этого не сделаю! лол! –

+0

Предположим, я хочу дать свой класс другим программистам. Если я сделаю свой класс похожим на тип данных, тогда они могут легко понять и использовать его как простой тип данных. Спасибо за Ваш ответ. – chanchal1987

5
using abc = MyNamespace.Abc; 

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

+0

+1. от меня, я имею в виду, как я мог не быть !!! –

5

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

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

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

Некоторые чтения:

0

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

Смежные вопросы