2013-04-19 4 views
1

Я хочу написать обнуляемого строку в файл, используя BinaryWriter и этот код:Запись Nullable с BinaryWriter

BinaryWriter writer = new BinaryWriter(st); 
    String? s; 
    if(s!=null){ 
     writer.Write(s); 
    } 

, но эта ошибка возникает:

тип «строка» должна быть не -полный тип значения, чтобы использовать его в качестве параметра «Т» в общем типе или методе «System.Nullable»

Как решить эту проблему?

+0

Дубликат http://stackoverflow.com/q/187406/700972 –

+0

О, глупый вопрос Я забыл это! –

ответ

4

Строки всегда могут быть нулевыми, вам не нужно пытаться сделать его нулевым, поскольку они не являются типами значений. Просто удалить? Это делает его недействительным для его исправления.

1

Строка является эталонным типом. Он не может быть нулевым.
public struct Nullable<T> where T : struct, new()

2

Строки уже обнуляются в C# .NET, они являются ссылочным типом с синтаксическим сахаром вокруг них, чтобы сделать их более удобными в использовании. Вы не можете сделать nullable double nullable, вселенная рухнет.

2

Согласно MSDN документации, мы можем видеть, что тип Nullable могут быть использованы только с структурами:

[SerializableAttribute] 
public struct Nullable<T> 
where T : struct 

P.S. см. также Constraints on Type Parameters.

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