25

Possible Duplicate:
What is the difference between String and string

When I run:

char c1 = 'a';
Console.WriteLine(c1);

and when I run:

Char c2 = 'a';
Console.WriteLine(c2);

I get exactly the same result, a.

I wanted to know what is the difference between the two forms, and why are there two forms?

Community
  • 1
  • 1
RE6
  • 2,684
  • 4
  • 31
  • 57
  • Such questions can be self-answered. From your point above just go ahead with 'if(c1.GetType() == c2.GetType()){ MessageBox.Show("Same"!); }. Compare the getType()-output of both variables. The system will tell you the answer. ^^ – C4d Sep 25 '14 at 12:20

3 Answers3

13

The result is exactly the same. Both represent the same type, so the resulting executables are completely identical.

The char keyword is an alias in the C# language for the type System.Char in the framework.

You can always use the char keyword. To use Char you need a using System; at the top of the file to include the System namespace (or use System.Char to specify the namespace).


In most situations you can use either a keyword or the framework type, but not everywhere. For example as backing type in an enum, you can only use the keyword:

enum Test : int { } // works

enum Test : Int32 {} // doesn't work

(I use int in the example, as You can't use a char as backing type for an enum.)


Related: Difference between byte vs Byte data types in C#

Community
  • 1
  • 1
Guffa
  • 687,336
  • 108
  • 737
  • 1,005
5

As far as I know, C# char type keyword is simply an alias for System.Char, so they refer to the same type.

stakx - no longer contributing
  • 83,039
  • 20
  • 168
  • 268
1

The keyword char is an alias of the System.Char type in C#.

Ry-
  • 218,210
  • 55
  • 464
  • 476
HatSoft
  • 11,077
  • 3
  • 28
  • 43