Re[5]: оператор ?. не работает с option
От: BogdanMart Украина  
Дата: 12.12.11 00:14
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>В дотнете это физически невозможно. Например, null-ссылка может быть получена внутри массива или внутри структуры созданной дефолтным конструктором.

Да с массивом и структурой действительно лажа..

Но подобную штуку видел в С++/CIL

struct A
{
   int i;
   String^ s; //Error  can't use managed pointer inside unmanged struct
   char Cs[20];
}

struct val B
{
   int i;
   String^ s; //All ok
   char Cs[20]; //Critical warning  -- mixed types not allowed
 // светится как ошибка, но прагмой специальной можно отключить, но тогда эта  струкутра не будет CLS Compilant
}


Так что для таких типов можно запретить массивы/структы.
Ты часто видел массивы варантов? а не листы, например.

можно:
  • вставлять проверки на Null и исключение по несоотвтесвию контарктов в точах соприкосовения NonNull типов и внешних дотнетовских тпов
  • запретить использовать наши типы с внешними, небезопасными
  • какой то свой, "безоасный" тип структа, как в С++/CLI
  •  
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.