« first day (1681 days earlier)      last day (46 days later) » 

3:43 AM
@webstackoverload "Я понял, но почему все ходят вокруг до около, вот Вы понимаете суть, но не привели пример из задачи, если Вам конечно интересно." Я же написал, если задача - обратиться к произвольному свойству произвольного объекта (тот же механизм, как в PHP например), dynamic это самый удобный способ, бессмысленно искать что-то лучшее. Отражение, это просто более громоздкий способ реализовать то же самое.
Это все еще не значит, что возвращать dynamic из метода только ради этого - хорошая идея. Решение я сказал довольно четко: возвращайте object, добавьте "as dynamic" по необходимости, что именно непонятно?
public static object CalcSum(dynamic x, dynamic y)
{
return x + y;
}

Плюса нет, но ToString то есть, так что код заработает без необходимости возвращать dynamic. Конечно, нельзя сложить object без преобразования в dynamic, я этого не утверждал.
 
 
2 hours later…
5:54 AM
Что значит обратиться к произвольному свойству? Это свойство меняется во время выполнения? Или его имя будет известно во время выполнения?
 
6:05 AM
Если свойства не меняются во время выполнения (а чаще всего это так), то значит вам нужно вернуть из метода объект, реализующий некий интерфейс, в котором все эти свойства объявлены
Если свойства меняются во время выполнения, то вам нужно использовать другие средства — словарь, например
 
 
1 hour later…
7:17 AM
Господа, с каких материалов посоветуете начать изучение c++? Так как начинаю я не с чистого листа, меня более интересует не общие навыки программирования а инструментарий, стандартная библиотека, соглашения. Желательно на русском языке.
 
A K
7:30 AM
@StrangerintheQ Список литературы по C++?
90
Q: Книги и учебные ресурсы по С++

Nick VolynkinВ этом вопросе собирается литература по языку C++ Формат: Имя Фамилия — «Название книги целиком и полностью», ГГГГ г.. Формат для переведенной литературы: Имя Фамилия (Name Surname) — «Название книги целиком и полностью», ГГГГ перевода ("Full name of the book", YYYY ) Не создавайте ...

 
7:51 AM
возможно, однако я решил сперва спросить совета, ибо по многим темам есть хорошие обучающие материалы в сети, но я так понимаю плюсы этим не славятся.
 
 
3 hours later…
10:38 AM
@MSDN.'ReinstateMonica'Knight Когда вернете мне рабочий обьект, тогда задача будет решена. В нашем случае обьект это существующий label11 который содержит текст. Сделайте метод который вернет обьект, потом получите доступ к его свойствам, то есть Вы сможете вывести текст который содержит label11
Все я пас, я говорю конкретню задачу, метод, возвращение обеьтка и доступ к свойствам, мне же приводят как это может не работать и почему это плохо
 
A K
Вы же потом снова скажете, что вас не устраивает решение, потому что в нём не было слова dynamic
Или вы отказались от этого условия?
 
11:41 AM
@AK В условиях запрещенно указывать в методе public Label, public Combobox, но при это надо вернуть один из этих обьектов, я предложил использовать Dynamic, так как это работает, дальше решайте сами.
 
A K
11:52 AM
@webstackoverload Вариант public W Test() {} от @Grundy чем вам тогда не подошёл? Там их даже несколько было.
 
А чем это не устравивает? public T Test<T> () where T:Control,new()
{
return (T)Activator.CreateInstance(typeof(T));
}
var t=Test<ComboBox>();
 
12:17 PM
@iluxa1810 Верните мне обьект, label11 а потом получите доступ к тексту который он содержит.
@AK Мне нужен простой рабочий пример кода, а именно метода, который не вернет обьект, с которым можно будет работать как с РЕАЛЬНЫМ обьектом, получать доступ к его свойствам типа содержащего текст Label11
 
12:29 PM
@webstackoverload var t=Test<Label11>(); var t2=t.Text;
 
@iluxa1810 У вас это работает ? у меня пишет - label11' is a 'field' but is used like a 'type'
 
A K
@webstackoverload А вы интересно так... вам дают код, а вы вместо него запускаете другой. У ильи не было нигде слова лейбл с маленькой буквы, у него с большой один раз написано.
 
@AK Не знаю как вам обьяснить, label11 содержит текст на форме
Понимаете ? есть форма, на ней есть label11 у которого к примеру текст Hello World
 
A K
12:52 PM
@webstackoverload Вот видите, вы снова пытаетесь уточнить условия задачи. Сначала вы говорили чтобы вам вернули объект вам давали вариант через new или activator, теперь вы просите, что у вас в приложении где-то есть форма, а на форме контрол и вам нужно его найти.
боюсь, что на q&a сайте вопрос быстро бы закрыли с формулировкой "постарайтесь писать более подробные вопросы", мол, непонятно спрашиваете.
вероятно, вы говорите слова, не особо чётко понимая их смысл.
вы не видите разницы между "вернуть объект" и "вернуть этот конкретный объект"
я даже подумывал, не почитать ли документацию, чтобы получше стали понимать термины
Но видимо дело не в терминах или не только в них.
Вы реально смотрите на свою форму, видите её и говорите "верните мне label" -- и когда вам дают именно то, что вы просили (а именно return new Label();) вы говорите "нет, это НЕ ТО"
но не описываете то, что видите.
так что тут поможет практика чёткого формулирования своих мыслей.
Есть такая игра, возможно слышали. Сидят два играющих, ведущий даёт одному листок, на котором нарисован круг, треугольник и квадрат -- и тот, кто посмотрел должен объяснить второму человеку как нарисовать точно такую же фигуру, но не видя рисунка. За одно объяснение, переделывать и корректировать нельзя, смотреть на то, что рисуется тоже нельзя.
 
label11 на форме - это контролл ? TabIndex и так далее это его свойства ? Что такое тогда обьект ?
 
A K
@webstackoverload А это уважаемый, вас уже много раз спрашивали и вы сами понимаете, что плохо знаете матчасть. Например, вы говорили "я вас просил объекты, а вы мне зачем-то классы подсовываете".
Что такое для вас объект?
 
@AK согласен, что я плохо знаю так как я только начал писать и то тестовые задания
@AK обьект что-то типа метода который выполняю общую задачу ?
ну я имею ввиду с доступами к его свойствам и т д
 
A K
Контрол - это визуальное что-то на форме, например, кнопка, текст ака ваш лейбл. Вы что-то знаете про наследование классов и про то, что все эти визуальные компоненты (ака "контролы") суть наследники некоторого общего для них класса?
 
@AK я до классов еще не добрался, хотя имею представление что это
@AK А что за общий класс ?
 
A K
1:07 PM
TControl видимо, не помню.
 
Я так понимаю общий должен быть самым высшим по иерархии ?
 
A K
Я последний раз накидывал визуальные компоненты на формочки лет 10 назад )
@webstackoverload Ну, можно и до System.Object добраться, вот это вершина всех вершин. Но для ваших примеров когда вам дают разнообразные версии как раз TContol и хватило
И если вы ещё не понимаете: то даже когда вам подсунут очередной пример и вы вдруг скажете, что это "опять не то", то вам снова укажут что ещё вы не указали в условиях.
 
@AK Я не думаю что все те примеры верны, потому что они не делают то что нужно. А именно не получают текст контрола которые есть на формочке ввиде label11
 
A K
Например, что объекты должны иметь разный набор методов, а не только обращаться к унаследованным от общего предка
 
@AK Вот когда мне именно методом вернут обьект, тоесть в return, и потом выведут с помощью этого обьекта текст ! Тогда будет означать что все верно
 
A K
1:11 PM
@webstackoverload "То, что нужно" -- это некоторый набор того, что есть в голове. И тут нет волшебников, читающих ваши мысли. А в слова вы формулируете так неточно, так плохо понимая язык на котором пишете, что существует дофига способов решить вашу задачу и НЕ УГАДАТЬ способ, который вы имели ввиду.
Мы не знаем, что за задача.
Вы этого ещё не поняли?
@webstackoverload вы ни капли не сузили пространство для манёвра, не отсекли ни один из приведённых ранее вариантов решения. И -- они все рабочие!!
Мы реально тут сидим флудим.
Просто интересно, когда до вас самого дойдёт понимание этого тупика.
 
Когда вернете текст из лейбла label11 с помощью public dynamic Test() { return... } тогда задача будет решена.
1) public dynamic Test() { return... } 2) тут получаем доступк к тексту
 
1:26 PM
А так, на сколько я понял нужно использовать все указывая это в методе, то есть это будет более правильным и верным, public Label Test() {} или public Combobox Test() {} эти методы можно запихнть в один метод который их будет вызывать по очереди и возвращать к примеру от условий их значения
 
@AK Control. TControl- это что-то дельфийское похоже.
 
Нужно будет поробовать так сделать, а то получается, что я как бы использую "сырой" метод, хоть рабочий но не слишком надежный потому что там использутеся dynamic. Хотя ошибок именно в самом методе допустить никак нельзя, уточняю что говорю именно в методе
 
A K
@webstackoverload извините, но задача сформулирована так себе: я сейчас напишу код, который это делает -- и вы опять начнёте говорить, что не так.
Просто скастовав к Label
Вы половину задачи потеряли
Вам надо реально каждый раз целиком и полностью описывать задачу, потому что непонятно, из каких отдельных фраз вы лепите итоговую задачу
Вам -- понятно, нам -- нет.
 
@AK на столько все просто что вы говорите вообще о об общих конролах, я же без них получаю доступ к свойствам обьекта в нашем случае label11
который содержит к примеру неких текст
или его свойствам к примеру имени контрола
я просто методом возвращаю обьект, дальше могу получать доступ к его свойствам, вевести имя, текст который он содержит (в нашем случае label11 на форме)
 
1:41 PM
Самое интересно что Моника говорил все верно выше, но пример приводил только - как можно допускать ошибки, а так сказать в самом его ответе есть ответ почему это должно работать то есть возвращать обьект с которым можно работать дальше. В ответе не коде, а о том что он писал
 
@StrangerintheQ со справки по C# :)
 
A K
@webstackoverload не, неинтересно. лучше один раз увидеть код, чем читать его описание словами.
даже при том, что вы настолько неточно словами жонглируете, что пишете "моника", в то время как имеете ввиду MSDN.Knight
Участников, которые дописали в ник Reinstate Monica очень много на сайте
29
Q: Кто такая Моника, и почему сообщество так часто упоминает это имя?

LeksЧасто встречаю имя "Моника" и кучу обсуждений внутри сообщества, где оно фигурирует. Нередко эти обсуждения довольно яростны. Что произошло и от чего такая реакция ?

Вон, даже модераторов несколько даже
 
@AK Да, именно его, потому мне легче Моника писать чем этот набор букв. Понял, их тут много оказывается
 
A K
1:57 PM
Ну так выражайте мысли чётче, чтобы вас можно было понять
Математика -- царица наук и всё такое
 
@AK Думаю так и есть
 
 
2 hours later…
3:47 PM
@webstackoverloa Чтобы вернуть из метода произвольный Windows Forms Control и взять его свойство Text, dynamic конечно не нужен. Они наследуются от общего класса System.Windows.Forms.Control, так что можно просто использовать статическое связывание:

public Control Test(int n)
{
switch (n)
{
case 1: return label1;
case 2: return comboBox1;
}
return null;
}

//...

string s = Test(1).Text;
string s2 = Test(2).Text;

Но НЕ ЛЮБОЙ класс, имеющий свойство Text, наследует от System.Windows.Forms.Control. Что, если хочется добавить сюда же ToolStripItem?
 
A K
Будет ОЧЕНЬ смешно, если окажется, что именно этот способ "переизобрёл", но поскольку не знал термина "приведение типов" не знал, что ему уже называли этот способ в числе "без приведения, без рефлексии"
 
4:22 PM
@MSDN.'ReinstateMonica'Knight Я бы Вам даже заплатил бы : ) за такой ответ !
вернусь позже : )
 
4:59 PM
@AK это VCL :) Да здравствует Delphi!
@MSDN.'ReinstateMonica'Knight ну и в большинстве случаев когда функция рандомно возвращает не связанные между собой ничем типы данных динамик особо не поможет, учитывая что ты не можешь точно утверждать будет у возвращенного объекта нужное свойство или нет и проверить это нельзя :-) а если ты знаешь какой тип вернется в конкретном вызове то и dynamic не нужен :)
 
 
2 hours later…
7:28 PM
@MSDN.'ReinstateMonica'Knight Просто в моем примере, он еще проще, но там как выяснилось нет проверок, что может привести к ошибке, но не в самом методе, а в вызове его свойства. А так Вы ответили не то что решили задачу но еще и сделали это куда безопасней и лучше, но также в моем методе можно обращаться к чему угодно. Но главное что задача решена с лучшими примерами ее использования
 
A K
7:41 PM
@webstackoverload Про ошибки. Вдумайтесь внимательно в последние слова Грунди: "а если знаешь тип -- динамик не нужен" + "если не знаешь тип -- легко схватить ошибку"
Потому способ либо бесполезный если знаешь тип, либо опасный выстрелом в ногу.
(картинка "не надо так")
 
8:04 PM
@AK Я думаю если там подумать, то можно усовершенствовать к примеру определителем возвращаемого типа
но это я так думаю, на деле это надо пробовать, но сам факт что задача решена, MSDN ее описал во всей красе
 
A K
@webstackoverload да, я приводил подобный пример из cqrs репозитория Equinox
 
@AK Почти закончил тестовое, вот готовлюсь с классами что-то делать, пока думаю, почитал что их в основном используют, для работы не знаю как сказать, к примеру описание чего-то, машина, 4 колеса, 2 двери, цвет и так далее, вот думаю начать с этого, но что можно придумать обширней, нужно какое-то взаимодействие классов придумать
 
@webstackoverload Слушай, друг, ты же практически такие же вопросы задавал пару лет назад, если не ошибаюсь.
 
@VladimirGamalyan Может быть, я не помню, но пару лет, я точно не изучал C#
 

« first day (1681 days earlier)      last day (46 days later) »