fixed позволяет сохранить данные внутри структуры, а не по ссылке.
public struct MyArray // This code must appear in an unsafe block
{
public fixed char pathName[128]; // это будет не ссылка, а inplace
массив в структуре
}
> 3. Additional extern functionality > Use different versions of same component within a single assembly >
Например, у тебя есть две сборки и в каждой сборке есть класс с именем
SomeAssembly.MyClass сейчас компилятор не даст использовать эти два класса в
одном проекте (имя-то одинаковое). Новый вариант extern позволяет это
делать.
To reference two assemblies with the same fully-qualified type names, an
alias must be specified on the command line, as follows:
/r:GridV1=grid.dll
/r:GridV2=grid20.dll
This creates the external aliases GridV1 and GridV2. To use these aliases
from within a program, reference them using the extern keyword. For example:
extern alias GridV1;
extern alias GridV2;
In the above example, GridV1::Grid would be the grid control from grid.dll,
and GridV2::Grid would be the grid control from grid20.dll.
> Ну с номером 1 усе ясно. Но о чем говорится в пп. 2 и 3??
Posted via RSDN NNTP Server 1.9
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Спасибо! 3е действительно может пригодится, хотя конечно, проблема далеко не столь актуальна в повседневности... Что б и неймспейс и имя класса сошлись — это постараться надо! А 2е это только для unsafe code block — ну наверно кому и пригодится, я такой блок не использовал еще ни разу...
При чтении бинарных форматов этот fixed очень и очень помогает. Раньше приходилось рассчитывать смещения вручную и указывать лишь первый элемент вместо массива.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Smarty, Вы писали:
S>>А 2е это только для unsafe code block — ну наверно кому и пригодится, я такой блок не использовал еще ни разу...
AVK>Не только unsafe.
Точно?
C# 2.0 adds the ability to embed an array of fixed size in a struct when used in an unsafe code block.
Здравствуйте, TK, Вы писали:
>> 2. Fixed size buffers >> Allows fixed-size struct with embedded array
TK>fixed позволяет сохранить данные внутри структуры, а не по ссылке. TK>
TK>public struct MyArray // This code must appear in an unsafe block
TK>{
TK> public fixed char pathName[128]; // это будет не ссылка, а inplace
TK>массив в структуре
TK>}
Hello, "JohnDoe"
> TK>fixed позволяет сохранить данные внутри структуры, а не по ссылке. > TK>
> TK>public struct MyArray // This code must appear in an unsafe block
> TK>{
> TK> public fixed char pathName[128]; // это будет не ссылка, а inplace
> TK>массив в структуре
> TK>}
> > а в 1.1 как можно аналогичное сделать ?
Точно такое умеет компилятор из mono. Код под 1.1 он генерирует.
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, JohnDoe, Вы писали:
JD>Здравствуйте, TK, Вы писали:
>>> 2. Fixed size buffers >>> Allows fixed-size struct with embedded array
TK>>fixed позволяет сохранить данные внутри структуры, а не по ссылке. TK>>
TK>>public struct MyArray // This code must appear in an unsafe block
TK>>{
TK>> public fixed char pathName[128]; // это будет не ссылка, а inplace
TK>>массив в структуре
TK>>}
JD>а в 1.1 как можно аналогичное сделать ?
Будет ли
[MarshalAs(UnmanagedType.ByValArray, SizeConst=128, ArraySubType=UnmanagedType.I2)]
public char[] pathName;
Здравствуйте, TK, Вы писали:
TK>Hello, "JohnDoe"
>> TK>fixed позволяет сохранить данные внутри структуры, а не по ссылке. >> TK>
>> TK>public struct MyArray // This code must appear in an unsafe block
>> TK>{
>> TK> public fixed char pathName[128]; // это будет не ссылка, а inplace
>> TK>массив в структуре
>> TK>}
>> >> а в 1.1 как можно аналогичное сделать ?
TK>Точно такое умеет компилятор из mono. Код под 1.1 он генерирует.
а если без моно, средствами МелкоМягкий ?