There is no public constructor overload for a String that takes a single char parameter as a parameter. Closest match
public String(char c, int count)
which creates a new String that repeats char c count times. So you could say
string s = new string('c', 1);
There are other options. There is an open String constructor that takes char[] as a parameter:
public String(char[] value)
This will create a String that is initialized with Unicode characters in value . So you could say
char c = 'c'; string s = new String(new char[] { c });
Another option is to say
char c = 'c' string s = c.ToString();
But the simplest approach that most expects to see is
string s = "c";
As for converting a char to char * , you cannot do this safely. If you want to use the overload of the public constructor for a String that takes a char * parameter as a parameter, you can do this:
unsafe { char c = 'c'; char *p = &c; string s = new string(p); }
jason source share