Инициализация структурной переменной в Nullable <int> - PullRequest
0 голосов
/ 15 октября 2008

Есть ли способ объявить переменную как Nullable в c #?

struct MyStruct {        
    int _yer, _ner;

    public MyStruct() {

        _yer = Nullable<int>; //This does not work.
        _ner = 0;
    }
}

Ответы [ 4 ]

5 голосов
/ 15 октября 2008

_yer должен быть объявлен как int? или Nullable .

    int? _yer;
    int _ner;

    public MyStruct(int? ver, int ner) {

        _yer = ver;
        _ner = ner;
    }
}

Или вот так:

    Nullable<int> _yer;
    int _ner;

    public MyStruct(Nullable<int> ver, int ner) {

        _yer = ver;
        _ner = ner;
    }
}

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

error CS0568: Structs cannot contain explicit parameterless constructors
1 голос
/ 15 октября 2008

Попробуйте объявить вашу переменную так:

int? yer;
0 голосов
/ 15 октября 2008

Попробуйте сначала объявить _yer как тип Nullable, а не как стандартное int.

0 голосов
/ 15 октября 2008

Как насчет обнуляемых типов :

struct MyStruct
{
    private int? _yer, _ner;
    public MyStruct(int? yer, int? ner)
    {
        _yer = yer;
        _ner = ner;
    }
}
...