type alias не настоящий
От: Разраб  
Дата: 10.11.23 03:32
Оценка:
public record Result<R, E>
{
    private Result() { }
    public record Ok(R Value) : Result<R, E>();
    public record Fail(E Value) : Result<R, E>();
}
public record SimpleResult : Result<string, string>; // <= нельзя из-за отсутствия доступного конструктора :(
using SimpleResult = Utils.Result<string, string>; // <= требует объявления по месту использования, т.е. нельзя просто поместить в пространство имен и использовать как обычный настоящий тип в других пространствах.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: type alias не настоящий
От: rameel https://github.com/rsdn/CodeJam
Дата: 10.11.23 06:32
Оценка:
Здравствуйте, Разраб, Вы писали:

Р>
Р>using SimpleResult = Utils.Result<string, string>; // <= требует объявления по месту использования, т.е. нельзя просто поместить в пространство имен и использовать как обычный настоящий тип в других пространствах.
Р>


В новых версиях можно объявлять глобальный type alias

global using SimpleResult = Utils.Result<string, string>;


То что нужно?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: type alias не настоящий
От: Разраб  
Дата: 10.11.23 12:31
Оценка:
Здравствуйте, rameel, Вы писали:

R>В новых версиях можно объявлять глобальный type alias


R>
R>global using SimpleResult = Utils.Result<string, string>;
R>


R>То что нужно?

да, но это именно global, а хочется честный тип в определенном пространстве имен.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: type alias не настоящий
От: _NN_  
Дата: 13.11.23 23:11
Оценка:
Здравствуйте, Разраб, Вы писали:

Р>Здравствуйте, rameel, Вы писали:


R>>В новых версиях можно объявлять глобальный type alias


R>>
R>>global using SimpleResult = Utils.Result<string, string>;
R>>


R>>То что нужно?

Р>да, но это именно global, а хочется честный тип в определенном пространстве имен.

Такого увы нет.
А какой сценарий использования ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: type alias не настоящий
От: Разраб  
Дата: 14.11.23 00:08
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, Разраб, Вы писали:


Р>>Здравствуйте, rameel, Вы писали:


R>>>В новых версиях можно объявлять глобальный type alias


R>>>
R>>>global using SimpleResult = Utils.Result<string, string>;
R>>>


R>>>То что нужно?

Р>>да, но это именно global, а хочется честный тип в определенном пространстве имен.

_NN>Такого увы нет.

_NN>А какой сценарий использования ?
я вижу тут больше порядка, если есть обобщённый и есть пара частых частных случаев, положить алиасы рядом(конструктор приватный или запечатанный класс — заменить наследниками нельзя).
ну и по месту использования, приятней видеть не
using Utils;
Task<Result<string, string>>

а
using Utils;
Task<SimpleResult>
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.