C# で文字(列)リテラルを、Unicode のコード ポイントで表現したい場合、いくつかの書き方があるので注意が必要です。
正直、わかりにくいです。
x 表記
'\x41' のように、\x に続けて 16 進数の数字を 1 ~ 4 桁の範囲で指定します。
つまり表せる範囲は '\x0000' ~ '\xFFFF' までです。
先頭の 0 は省略できます。
u 表記
'\u0041' のように、\u に続けて 16 進数の数字を 4 桁で指定します。
先頭の 0 は省略できません。
表せる範囲は x と同じで '\u0000' ~ '\uFFFF' までです。
U 表記
"\U0001FFFF" のように、\U に続けて 16 進数の数字を 8 桁で指定します。
先頭の 0 は省略できません。
この書き方には注意が必要です。
値の範囲が U+0000 ~ U+FFFF までの場合、1 文字の char 型で表せます。
つまり、'\U00000000' ~ '\U0000FFFF' までは、シングル クォーテーションで囲むことができます。
.NET の char 型は UTF-16 なので、U+10000 を超える範囲は 1 文字の char では表すことができず、サロゲート ペアを使わなければなりません。
この場合、string 型を使う必要がありますので、"\U00020B9F" のように、ダブル クォーテーションで囲まなければなりません。*1
x 表記と u 表記の注意
もう一度言いますが、x と u は最大 4 桁まで(u は常に 4 桁固定)しか指定できません。
そのため、x が可変長だからといって "\x20B9F" と書くと、コンパイル エラーにはならず、文字 '\x20B9' に 'F' がくっついた文字列になります。*2
また、u と U を取り違えて "\u0002B09F" と書くと、文字 U+0002 に、文字列 "B09F" がくっついたものになります。
コード ポイントから文字列に変換する
char.ConvertFromUtf32 メソッドが使えます。
char クラスのくせに戻り値は string です。