|
Расширение класса string
|
|||
---|---|---|---|
#18+
Алексей Ку.Да я бы хотел так сделать! Но Сон веры павловны прав. Придётся тащить половину mscorlib. На первый взгляд всё выглдяит несложно, а оказывается всё наоборот. Класс string ни капельки не самостоятельный и использует половину mscorlib. Тут у меня назрел такой вопрос. А почему мой новый string2 (порождённый из исзодника string) не может использовать уже скомпилированный mscorlib, чтобы его не тащить в проект? Потому, что есть такой модификатор доступа - internal. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 17:58 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
D129Алексей Ку.Да я бы хотел так сделать! Но Сон веры павловны прав. Придётся тащить половину mscorlib. На первый взгляд всё выглдяит несложно, а оказывается всё наоборот. Класс string ни капельки не самостоятельный и использует половину mscorlib. Тут у меня назрел такой вопрос. А почему мой новый string2 (порождённый из исзодника string) не может использовать уже скомпилированный mscorlib, чтобы его не тащить в проект? Потому, что есть такой модификатор доступа - internal. А ну да... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:06 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Алексей Ку., Internal классы (структуры, интерфейсы, энумы, делегаты) видны только внутри сборки, в которой объявлены (если только сборка не скомпилирована с атрибутом InternalVisibleTo - но это точно не про mscorlib и ваш проект). Помнится, как-то я попытался подправить исходники класса SignedXml - не вышло нифига. Как раз из-за этих internal'ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:07 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Алексей Ку., Вам явно не нужны все методы оригинального класса String... У Вас я видел 3-5 метода для переписания (причем, на мой взгляд, элементарнейшие). Зря Вы заранее испугались, там совсем немного тащить надо. А для общего развития было бы полезно. Но смотрите сами, за Вас этого никто не сделает, но если Вас уже запугали и уверенности в собественных силах нет, делайте через Extensions - это проще и быстрее, а в Вашем случае, может, и оправданнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:07 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Да вообще все проще на самом деле. Просто сошлитесь на родной класс String и сделаете как-бы overraid нужных Вам методов. Даже исходников System.String не надо! Чо-то туплю я сегодня. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:16 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
самый простой способ переправить код на другой тип для Билдера объявите в каком нить хидере типа вот этого Код: pascal 1. 2. 3. 4.
и включите его во все модули код которых надо переводить, попутно компиля ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:21 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
AxeleronПросто сошлитесь на родной класс String и сделаете как-бы overraid нужных Вам методов. Родной класс System.String является sealed, если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:22 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныAxeleronПросто сошлитесь на родной класс String и сделаете как-бы overraid нужных Вам методов. Родной класс System.String является sealed, если что. Это не играет роли. Я предлагаю не наследование, а вот что: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:33 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
AxeleronЭто не играет роли. Я предлагаю не наследование, а вот что: Это, собственно, и есть extension-методы, про которые топикстартер писал с самого начала. Вы предлагаете ему то, что он сам себе предложил? Это во-первых. А во-вторых, с вышеприведенной сигнатурой это просто не будет работать: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Прогоните этот код с закомментаренным public static class String, и с незакомментаренным, найдите отличия. Если что - компилятор в первую очередь по сигнатуре вызова ищет инстансные методы, и только не найдя их, начинает искать extensions-методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 18:57 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Ваша правда! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 19:16 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Все, убедили Вы меня - лучше всего просто Extension methods использовать без извратов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 19:47 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Axeleron, лучше говнокод переписать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 20:06 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
ИзопропилAxeleron, лучше говнокод переписать Ну это уже меры глобального порядка ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 20:07 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Огромное спасибо всем за помощь в этом вопросе! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 22:27 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Алексей Ку.Тем более эти классы постоянно развивает другая команда, а моя задача вести параллель на шарпе. Отсюда и необходимость вносить минимум изменений!Может проще сибилдерную часть оформить в виде DLL или COM и подсоединить к сишарпу инвоком/интеропом? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2015, 14:47 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
Алексей К, Не, проще последовать совету Изопропила. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2015, 14:49 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
На правах не сильно продуманной идеи: Завернуть стринг в структуру и переопределить метходы работы со структурой. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2015, 19:08 |
|
Расширение класса string
|
|||
---|---|---|---|
#18+
На самом деле делай, Алексей, класс AnsiString с внутренним членом класса String и реализуй в нём (AnsiString) только то, что используется классами, портируемыми из C++, в частности метод Substring, ещё пару-тройку каких-нибудь типа Pos и SetLength, ну и операторы +, -, =, ==, != или какие там используются... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 10:55 |
|
|
start [/forum/topic.php?fid=20&msg=38889906&tid=1401833]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 410ms |
total: | 639ms |
0 / 0 |