.net - Какво представлява типовата безопасност?

Translate

Наскоро имах изпит за мозъчни изследвания, получих висока оценка, но имаше няколко въпроса, които бяха трудни за мен. Може би защото английският не е моят роден език ... Един от въпросите е:

Кое от следните описва безопасността на типа?

  1. Програмна конструкция, използвана за осигуряване на сигурността на референтните и стойностните типове в CLR
  2. Защитата от изтичане на памет в резултат на забрана на неуправляван достъп
  3. Специфичната за CLR функция, която гарантира, че типовете може да нямат достъп до паметта извън собствения си AppDomain
  4. Механизъм, създаден за защита на сглобки и техните типове чрез използване на силни ключове
  5. Концепцията, занимаваща се с уверенията, че разпределените обекти винаги са достъпни по съвместими начини

Мисля, че е 1 или 5, но така или иначе ми звучат странно :(

Какво мислиш?

This question and all comments follow the "Attribution Required."

Всички отговори

Translate

Всъщност мисля, че това е избор 5, защото безопасността на типа няма нищо общо със сигурността.

източник
Translate

Тип безопасносте характеристиката на език, създаден да се справи с известния лозунг на [Robin Milner] [1] относно програмирането на ML:добре набраните програми не могат да се объркат.

Лозунгът се нуждае от разопаковане, преди да може да бъде разбран правилно, но всъщност това означава, че програмите не могат да се провалят поради грешка в типа на изпълнение, т.е. когато параметрите, приложени към конструктор или функция, имат стойности от несъвместим тип.

Помислете за език, който позволява цели числа, целочислени функции като първокласни стойности, абстракция на функции и приложение на частични функции и който определя обичайните целочислени аритметични оператори като двоични функции. Свойството безопасност на типа е това, което компилаторът налага, за да гарантира, че и двата аргумента към оператора за добавяне са изрази, които намаляват до цели числа, а не до функции. Ако една програма е добре набрана, тогава компилаторът може да излъчи изпълним обект за нея. В противен случай той отбелязва грешката при програмиране и прекъсва.

източник
Translate

Според връзката msdn, предоставена по-долу,http://msdn.microsoft.com/en-us/library/hbzz1a9a.aspx

Типозащитният код има достъп само до местата в паметта, до които е разрешен достъп. (За тази дискусия безопасността на типа се отнася конкретно до безопасността на типа памет и не трябва да се бърка с безопасността на типа в по-широк аспект.) Например защитеният от тип код не може да чете стойности от частните полета на друг обект. Той осъществява достъп до типовете само по добре дефинирани, допустими начини.

източник
Translate

Избор 5 Концепцията, занимаваща се със сигурността, че до разпределените обекти винаги се осъществява достъп по съвместими начини

Защитата на типа се занимава с това, че когато създавате Foo, не можете да го третирате като лента. Ако не знаете какъв тип е (или не са гарантирани), кодът, който пишете, може да не работи както се очаква.

източник
Translate

Типобезопасните езици ще се уверят (по време на компилация), че не извиквате несъвместими методи за тип, например length () за тип int. Езиците, които не са безопасни за типа, ще го разберат по време на изпълнение. И така, избор 5.

източник
Translate

Както казаха други, избор 5 ...

Като цяло - за .NET разгледайте Common Type System (CTS), която позволява междуезични неща и безопасност на типа.

Разгледайте:http://en.wikipedia.org/wiki/Type_safety...

източник
Translate

Това е вариант # 5. Безопасността на типа е гаранция, а не конкретно нещо. Възможно е .NET код данебъдете сигурни за типа ... кажете в случай, че даден сбор използва опасен код за извършване на неуправлявани повиквания (PInvoke). По време на JIT се изпълнява процес, който потвърждава, че типовете, които се дразнят, наистина са безопасни за типа. Не съм наясно с каквито и да било подробности за този процес, но ако премине неподвижен тип, тогава той се счита за проверимо тип безопасен.

източник
Leave a Reply
You must be logged in to post a answer.
За автора