C# 2.0 Language Enhancements
От: Smarty Россия  
Дата: 21.06.05 11:51
Оценка:
Смотрел презентацию с сабжевым названием. Текст одного кадра(из презентации):

Other Enhancements

1. Friend assemblies
Provides access to non-public types
Declared with InternalsVisibleToAttribute

2. Fixed size buffers
Allows fixed-size struct with embedded array

3. Additional extern functionality
Use different versions of same component within a single assembly

Ну с номером 1 усе ясно. Но о чем говорится в пп. 2 и 3??
Re: C# 2.0 Language Enhancements
От: TK Лес кывт.рф
Дата: 21.06.05 12:01
Оценка: 13 (3)
Hello, "Smarty"
>
> 1. Friend assemblies
> Provides access to non-public types
> Declared with InternalsVisibleToAttribute
>
> 2. Fixed size buffers
> Allows fixed-size struct with embedded array
>

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
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: C# 2.0 Language Enhancements
От: Smarty Россия  
Дата: 22.06.05 08:16
Оценка:
Здравствуйте, TK, Вы писали:

Спасибо! 3е действительно может пригодится, хотя конечно, проблема далеко не столь актуальна в повседневности... Что б и неймспейс и имя класса сошлись — это постараться надо! А 2е это только для unsafe code block — ну наверно кому и пригодится, я такой блок не использовал еще ни разу...
Re[3]: C# 2.0 Language Enhancements
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.06.05 09:18
Оценка:
Здравствуйте, Smarty, Вы писали:

S>А 2е это только для unsafe code block — ну наверно кому и пригодится, я такой блок не использовал еще ни разу...


Не только unsafe. В интеропе это тоже играет довольно важную роль.
... << RSDN@Home 1.2.0 alpha rev. 499>>
AVK Blog
Re[3]: C# 2.0 Language Enhancements
От: Mab Россия http://shade.msu.ru/~mab
Дата: 22.06.05 10:54
Оценка:
При чтении бинарных форматов этот fixed очень и очень помогает. Раньше приходилось рассчитывать смещения вручную и указывать лишь первый элемент вместо массива.
Re[4]: C# 2.0 Language Enhancements
От: Smarty Россия  
Дата: 26.06.05 19:30
Оценка:
Здравствуйте, 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.

Re[2]: C# 2.0 Language Enhancements
От: JohnDoe  
Дата: 14.03.06 14:28
Оценка:
Здравствуйте, 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>}


а в 1.1 как можно аналогичное сделать ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: C# 2.0 Language Enhancements
От: TK Лес кывт.рф
Дата: 14.03.06 14:54
Оценка:
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
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: C# 2.0 Language Enhancements
От: JohnDoe  
Дата: 14.03.06 15:18
Оценка:
Здравствуйте, 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;


работать аналогично?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: C# 2.0 Language Enhancements
От: JohnDoe  
Дата: 14.03.06 15:22
Оценка:
Здравствуйте, 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 он генерирует.

а если без моно, средствами МелкоМягкий ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.