« first day (1680 days earlier)      last day (47 days later) » 
03:00 - 23:0023:00 - 00:00

3:39 AM
@webstackoverload чем реже — тем лучше, в идеале — никогда
@webstackoverload нормальный подход возвращать имя переменной? Звучит как бред.
 
 
3 hours later…
7:06 AM
@webstackoverload имя переменной - это строка - для возврата строки dynamic не нужен
 
A K
7:51 AM
@webstackoverload В моих задачах крайне редко находится повод использовать, вот так прямо и не вспомню, когда последний раз использовал. Да и вообще, иметь в языке мощную поддержку типов и ей не пользоваться -- это как купить гоночный болид и ездить на нём в булочную.
 
 
2 hours later…
9:33 AM
@Grundy Как это ? как тогда в return запихнуть VAR ? я только с Dynamic это смог
@АндрейNOP Да ну ? А что если мне нужно отдать сама переменную var ?
 
9:46 AM
@webstackoverload var никак не запихнуть в return, потому что это не настоящий тип - это просто ключевое слово, которое обозначает, что тип определяется автоматически. Например, в var s = "Hello" истинный тип s - string. Чтобы вернуть s из метода, возвращаемое значение должно быть также string. dynamic (или object) позволяет вернуть что угодно, но это не значит, что это хорошая идея.
 
10:00 AM
@webstackoverload Вы решаете какую-то конкретную задачу или просто интересуетесь?
 
10:11 AM
@MSDN.'ReinstateMonica'Knight А, понял, можно сделать по другому тогда, возвращать как Вы и говорите, тип string, а дальше этот string запихнуть в var как-то так var foo = new { string };
@iluxa1810 Задача решена, но усомнился в ее правильности (реализации), хотя примеры с dynamic есть. Просто решил узнать у тех кто пишет код давно, верно ли такой подход
 
A K
@webstackoverload Для чего вам это надо? Мне кажется, что вы не совсем поняли идею типов данных, а не то, что это какая-то реальная задача. Если у вас Foo возвращает строку, то вы можете присвоить переменной типа строка двумя способами: первый, явно string param1 = Foo(); либо неявно var param1 = Foo();. В обоих случаях компилятор знает, что у param1 тип будет string (во втором случае он выводит переменную из вашего кода).
 
@AK foo - создаст переменную которую я смогу использовать в коде, а не строку
@AK var foo = new { string }; вернет не строку здесь
 
A K
@webstackoverload Что вы имеете ввиду под "создать строку"?
строка -- это переменная с типом "строка" и некоторым значением. Вы можете использовать далее эту переменную, её значение.
 
@AK именно, на основе этой переменной я создам var переменную
 
A K
Ну и создавайте.
 
10:26 AM
@AK Чтобы не использовать Dynamic для возвращения сразу - VAR переменной
 
A K
@webstackoverload да зачем здесь динамик-то???
 
Тут речь пошла о том что Dynamic не верно использовать, тогда я предложил другой путь
 
A K
@webstackoverload вы не можете объяснить, какую практическую задачу вы решаете. И начинаете объяснять "я хочу сделать то-то".
 
@AK Читайте, я писал что я с помощью МЕТОДА с использованием Dynamic, возвращал сразу VAR переменную.
@AK Мне MDSN сказал, что такой подход не верен
 
A K
Это типичная проблема XY, про микроскоп и гвозди. Вы приносите какой-то странный микроскоп, которыми не пользуются и просите чего-то странного и непонятного: складывается впечатление, что вы либо не можете пояснить, что за задача вам нужна, либо хотите сделать какую-то типовую задачу совершенно нетиповым способом (зачем? можно же сделать типовым), либо хотите вообще чего-то настолько нетривиального, что такого даже в язык не закладывали.
 
10:30 AM
@AK Тогда я написал, ладно, метод будет возвращатьс СТРОКУ string, которую я запихну в VAR что и решит данную задачу, только другим способом, не нарушая "теорию" MDSN )
 
A K
Не надо объяснять, что вы хотите вернуть return var -- это такая дикость, что это не работает. Объясните лучше, ЗАЧЕМ вам нужно вернуть return var и что вы собственно под этим подразумеваете, потому что вы используете ключевые слова языка таким способом, который не подразумевали ни создатели языка, ни все пользователи языка.
вам надо вероятно подробнее покурить документацию по языку в трёх аспектах. Во-первых, типы (typeof, .GetType и т.п.), во-вторых, ссылочные/значимые типы, размещение в куче, в-третьих (возможно) про рефлексию.
До этого момента вы говорите вещи, которые непонятны, соединяете правильные ключевые слова в каком-то настолько нетипичном подходе, что непонятно, что и зачем хотите сделать.
у меня стойкое впечатление, что то, что вы хотите сделать можно сделать проще, без dynamic
 
"Хотеть" return var не дикость, в С++ же есть return auto. Но да, в C# это не возможно, так как компилятор работает по другому. Все возвращаемые значения должны быть известны на первом проходе, который не читает тело метода.
 
A K
Ну и чего не хватает в данном примере? Можно сконструировать новые переменные на основе возвращаемых данных.
 
dynamic в качестве возвращаемого значения это плохо почти всегда (кроме случаев взаимодействия с языками с динамической типизацией), потому что dynamic принудительно убирает все проверки времени компиляции. Если метод должен возвращать любой/неизвестный тип, дайте возвращаемому значению тип object. Кто хочет отключить проверки, тот может сам сделать as dynamic.
 
A K
10:50 AM
Ради интереса натравил поиск слова dynamic в *.cs в папках c:\git (а там у меня ещё папка github.com валяется) и c:\tfs -- и нашёл всего 15 и 9 срабатываний, в основном ложных, типа /// Visits the children of <see cref="System.Linq.Expressions.DynamicExpression"/>.
В основном примеры были вида dynamic userNames = JsonConvert.DeserializeObject(await result.Content.ReadAsStringAsync());
Где на мой взгляд вполне возможно было избежать, аккуратно описав тип получаемых данных.
Ну вот один более-менее пример есть, когда в cqrs проект прилетает событие, там стоит dynamic и после него сразу switch с типом события github.com/EduardoPires/EquinoxProject/blob/master/src/…
 
@AK все верно Вы написали в вашем примере, только у меня ранее в методе Foo() был динамик, по этому как я понял, так делать лучше не надо, и сделать как в Вашем примере
Т.Е я сразу возвращал переменную и использовал ее, без повторного ее создания как в var param2 = Foo();
 
A K
11:14 AM
@webstackoverload система типов позволяет вам лучше контролировать происходящее в коде, ещё на стадии compile time. Это в основном хорошая штука. Если вы знаете, что у вас переменная определённого типа -- так и используйте этот определённый тип. Потребность в dynamic лучше ограничить / возникает на стыке слоёв с чем-то неизвестного типа (база, внешняя система) и то можно попробовать снизить эту неизвестность.
 
@AK А почему плохо ? К примеру если она используется только для одной задачи. Конечно я все детали работы не знаю, о чем Вы говорите, но по ответу MSDN понял, что лучше все уточнять и делать как в Вашем примере, чтобы там где-то небыло проблем
 
A K
@webstackoverload Плохо что?
 
@AK Использовать dynamic в таких случаях
@AK То есть, есть конкретный метод, я знаю что этот метод отдает переменную, почему это плохо ? Если этот метод ничего другого не отдает кроме переременной, к примеру ?
@AK я понимаю разницу в Вашем примере или же если использовать метод динамик, но не понимаю как - это плохо влияет - если это работает и там и там
К примеру чем плох этот код - public dynamic Foo()
{


return VAR_NAME;
}
 
A K
@webstackoverload Смотрите. Человек пишет код. Язык, компилятор, IDE помогают разными способами написать проще, быстрее, качественнее. Один из способов помощи сделать качественнее - типизация, когда человеку намекают, что в переменную типа число пытаются вогнать строку. А вы сознательно отключаете часть возможностей, отключаете эти проверки, говоря тем самым "я умный, я не ошибусь" (а потом будете в три раза дольше отлавливать ошибки, ага). То есть по сути добровольно разрешаете себе выстрелить в ногу.
Вполне возможно, что если у вас одноразовый скрипт "написали и забыли" и вам важна скорость и пофигу на качество и все эти доп. проверки типов (они отнимают время, верно) то вам надо было выбрать [для этой задачи] какой-нибудь скриптовый язык с упрощённой системой типов.
 
@AK Теперь понял, это не для меня, это нужно для компилятора, чтобы он в случае чего - сразу определял с чем работает, а не как с динамик - который как бы не определен
@AK Для меня будет плохо, если где-то будет ошибка и ее будет трудно найти, потому что тип неопределен, верно я понимаю ?
Тогда я понял о чем вы говорите, нужна реальная конкретика
Не знал, теперь буду : ) спасибо
 
A K
11:30 AM
@webstackoverload Верно. Сам компилятор подскажет, что вы пытаетесь вогнать в число строку (треугольник в квадратное отверстие).
 
@AK Ок, главное что теперь понятно, как нужно и как не желательно
 
11:44 AM
@AK в след задании, хочу поработать с классами поработать, на сколько я сейчас понимаю они вмещают в себя методы возможностью устанавливать те или инные доступы к ним. То есть класс по сути заключает в себе методы которые относятся к одной задачи и коммуницируют между собой ?
Т.е это как описание/решение конкретной задачи участка общего кода
 
A K
@webstackoverload В целом верное понимание.
Это у вас такой вопрос "зачем нужны классы в программировании?"?
 
@AK В общем да, просто я начал понимать что они нужны после написания более менее среднего кода, ибо одними методами не обойтись, так как их много и понять потом что за чем не легко, а так как я понимаю, класс он как бы охватывает конкретную задачу и описывает ее методами и т д..
 
A K
@webstackoverload Да, чем больше кода, тем больше возникает проблем двух типов. Первый - у человека, теряется понимание как крупная задача распадается на более мелкие. Вторая - растёт шанс того что один участок будет влиять на другой, причём не запланировано. Классы изолируют в небольшие кластеры данные+код их обрабатывающих, причём за счёт инкапсуляции мы гарантируем, что детали останутся внутри и не вылезут наружу, их нельзя будет достать в обход разрешённого.
 
12:06 PM
@AK Это я понял на первых двух заданиях, когда писал код, можно сказать использую глобальные переменные и мало использовал методы, потом когда что-то шло не так, появлялось вот этих влияних одно на друго столько, что легче было все удалить и написать все заново, что в принципе и произошло, только уже с использованием методов (которые как бы отделяют одно от другого) но, по возврастанию понимаю что теперь нужно что-то но уже для самих методов, как я понял это и есть классы
Пока на методах, все работает, по заданию, когда доделаю, попробую потом переписать это но уже с классами, то есть действующий код - с методами, сделаю с классами
 
12:45 PM
@webstackoverload в return запихнуть var - элементарно
@webstackoverload вот никто и не понимает что именно ты делаешь :)
@AK кажется можно обойтись наследованием и атрибутами
@webstackoverload плох наличием синтаксической ошибки, так как нет объявления VAR_NAME
 
@Grundy Как возвратить var ?
Потому что фокус, не получается сделать по примеру АК
 
@webstackoverload берешь и возвращаешь. Если у тебя что-то не работает - сделай пример демонстрирующий ошибку и задай вопрос
 
@Grundy ок
 
@webstackoverload По твоим объяснениям в принципе не понятно что ты делаешь и что не работает, а судя по примеру кода - это все должно было работать и так, без динамика
 
1:04 PM
Вот, так будет думаю понятней, string param = "label11";
var foo = param;
MessageBox.Show(foo.Text);
То есть я хочу получить доступ к тексту label11
 
@webstackoverload Что-то не понятно... откуда у foo есть свойство Text-если это примитивный тип
 
A K
@webstackoverload Ну и получите: MessageBox.Show(foo);
Почему вы думаете, что у строки есть .Text?
 
@AK Потому что я хочу обратиться к Label11 который есть в форме
Надеюсь вы поняли смысл, если с dynamic это работает, то с другими вариантами оказалось нет.
 
A K
@webstackoverload Так на форме label - это объект с типом, совершенно другим, чем string. И у этого типа есть .Text а у строки нету
Но задача становится понятна.
 
@AK верно, с динамик я возвращаю этот тип и спокойно могу сделать то что не работает выше в коде ) потому что нельзя строку в тип превратить
 
A K
1:16 PM
На форме есть массив label, вы хотите обратиться к одному из элементов этого массива по динамическому параметру
Думаю, если бы сразу задали вопрос -- вам бы уже давно подсказали какой-нибудь дубликат )
 
@webstackoverload если ты тут заменишь string на dynamic - у тебя все еще ничего не заработает
 
@AK Но я сделал это с помощью dynamic так как динамик может возвращать этот обьект и дальше с ним можно работать, другого способа я просто не знаю
 
@webstackoverload конкретно этот пример и с dynamic не работает
 
@Grundy заработает потому что динамик я использую в методе )
 
@webstackoverload ну так покажи как ты его используешь-то :)
пока - твое объяснение с твоим кодом никак не коррелирует
 
1:19 PM
Находишь элемент на форме по имени, а дальше работаешь с ним, как хочешь
 
@iluxa1810 нужно без foreach это делать с foreach проблем бы небыло
 
@webstackoverload А почему?
 
@webstackoverload пока код из твоих примеров одинаково не работает как с dynamic так и без него.
 
@iluxa1810 Потому что такова логика работы которая нужна
 
@webstackoverload form.Controls.OfType<Label>().Where(l => l.Name == "BlaBlaBla");
@webstackoverload все равно не понимаю, что ломает цикл в твоей логике.
 
1:24 PM
@iluxa1810 это все потому, что неизвестно что он делает в своем "методе" который dynamic возвращает :)
 
@Grundy Да тут походу уже консилиум собрался, что бы понять это=D
 
@iluxa1810 уже все разошлись, потому что "Кода нет" :)
 
@Grundy Как это не понятно, я динамиком возвращаю обьект !
В нашем случае label11
 
@webstackoverload ты код-то покажи :-)
своего метода
пока все приведенные тобой примеры кода одинаково НЕ работают что с динамиком, что без
а рабочий код, ты показывать не хочешь/ не можешь
 
Раз вы не можете понять, тогда есть задача, как возвратить методом обьект с которым дальше можно работать и его свойствами
 
1:42 PM
@webstackoverload то есть рабочего кода у тебя нет? :-)
а что ж ты тогда говоришь, что с dynamic работает? :)
 
A K
@webstackoverload Вы не поверите: если c# знает тип объекта и потом находит где-то на этом типе информацию о том, что этот тип реализует такой метод или свойство -- то вы можете просто использовать return объявив выходным типом именно этот тип. И дальше вы можете с ним работать, просто поставив точку и вам IDE подскажет список методов/свойств данного класса.
А вы идёте по тонкому льду -- вы кидаете dynamic/object, потом вам нужно попробовать сделать каст к нужному типу и если вдруг это удастся, то можно будет вызывать методы/свойства того типа, к которому кастовали.
 
@AK Покажите пример, решения поставленной задачи, он очень простой
 
A K
void Main()
{
	var worker = new Worker();
	var param = worker.Execute();
	Console.WriteLine(param.MyProperty);
	Console.WriteLine(param.Foo());
}

// Define other methods and classes here

public class Worker
{
	public A Execute()
	{
		return new A
		{
			MyProperty = 42,
		};
	}
}

public class A
{
	public int MyProperty { get; set; }

	public string Foo()
	{
		return "bar";
	}
}
 
@AK зачем гадать, если @webstackoverload, не может показать код, который, как он уверяет, у него работает?
 
@Grundy Не совсем понимаю что он делает, пока что, но задача состояла в том, чтобы МЕТОД вернул ОБЬЕКТ с доступом к его СВОЙСТАВАМ.
 
1:57 PM
@webstackoverload еще раз: ты говоришь у тебя есть код, который работает с dynamic, но почему-то не хочешь его показать
 
A K
@Grundy Чтобы помочь разобраться. Явно же, что человек зашёл в тупик и мало того, что сам не может разобраться -- ещё и не может объяснить, где он заблудился и куда хочет придти.
 
@AK ну так тыкать пальцем в небо можно бесконечно, учитывая, что автор вопроса думает что-то свое
 
@AK Я думаю задача вам ясна, просто вы не знаете как ее реализовать - решить.
 
A K
@Grundy Твоя правда, о, лучезарный: видимо, у меня сегодня есть время и настроение поковыряться в этом.
 
@AK не стоит :-) лучше все-таки выбить из пользователя пример его кода, который, как он утверждает, у него работает :-) но он отчаянно сопротивляется ]:-)
 
A K
2:00 PM
@webstackoverload Напротив, задача ваша мне совершенно непонятна и я много раз повторял на разные лады, что не понимаю, что именно вы хотите добиться. А вот насчёт того, что не знаю, как решить -- это вряд ли: язык я знаю хорошо, даже могу магию рефлексии подтащить.
@Grundy хорошо.
@webstackoverload mcve, please )
без кастов, рефлексии -- чисто на dynamic
 
@AK Без понятия что такое касты и рефлексия, есть задача, создать метод, который вернет обьект, с котрым можно работать, в том числе и его свойствами.
 
@webstackoverload Что такое объект? Объект имеет какой-то конкретный тип или это может быть все что угодно?
 
@webstackoverload почему ты не хочешь продемонстрировать твой рабочий код с dynamic?
 
A K
@webstackoverload Вон выше метод Execute возвращает объект класса A, можете работать: на нём вызываются и методы и свойства.
 
@iluxa1810 Как сказал AK Label11.Text это обьект и его свойства
 
A K
2:05 PM
Более того: как вы знаете, все классы в C# отнаследованы от System.Object так что возвращая "просто object" вы можете использовать все методы этого класса (их там официально штуки три вроде как)
@webstackoverload хаха! Label11.Text -- это объект такого типа у которого есть .Text
 
@Grundy Потому что я хочу чтобы вы мне продемонсрировали сами, простой пример возвращение обьекта, к свойствам которого можно потом имет доступ и не нужно там никаких гет сетов )
 
@webstackoverload Если вы хотите возвращать объекты типа Label, то что мешает сделать метод Label GetLabel() {Какая-то логику return label} ?
Если вы знаете тип объекта, который в итоге получаете, то зачем возвращать всякие Object'ы и динамики? Получите конкретный объект и работайте с ним
 
A K
@webstackoverload Вы как будто хотите у a вызывать Bar хотя его там нет
 
Еще есть дженерики,
 
A K
void Main()
{
	var a = new A();
	a.Foo();
	var b = new B();
	b.Bar();

	a.Bar();
}

// Define other methods and classes here

public class A
{
	public string Foo()
	{
		return "foo";
	}
}

public class B
{
	public string Bar()
	{
		return "bar";
	}
}
Оно вон даже красным подсвечивается -- нет его там
Но!! Если бы существовал каст
	var c = (B) a;
	c.Bar()
То c.Bar сработал бы.
В текущей версии на var c = (B) a; будет ошибка
 
2:11 PM
Не пойму зачем Вы мне демонстрируете классы, я еще не совсем понимаю. Покажите мне на примере обычного метода, возвратите мне им обьект, с которым потом можно работать
 
A K
@webstackoverload Классы? А что такое по-вашему объекты?
 
@webstackoverload Ну вон же вернулся string-это тоже своего рода объект у которого есть методы. Можно вызвать Length- свойство объекта. IndexOf-метод объекта.
 
@webstackoverload зачем угадывать что ты хочешь получить, если у тебя есть решение какой-то задачи, но ты не хочешь его показывать?
 
A K
@webstackoverload А вы понимаете, что объекты -- это экземпляры классов? (Ну, упрощая ситуацию)
 
@webstackoverload по сути ты хочешь чтобы все угадали какую задачу ты когда-то решил с помощью dynamic :-) причем не говоря задачу и не показывая существующее решение
@AK не удержался? :-)
 
A K
2:14 PM
@Grundy ¯\_(ツ)_/¯
 
@webstackoverload вот именно поэтому и нужен код который у тебя работает :-) потому что никто не угадает что именно ты загадал, если ты сам не скажешь
 
@Grundy Задача простая, что тут не понятного ? Есть метод, функция, к примеру public void ReturnObject() { } уточняю это пример, вот верните мне этой функцией обьект, с которым можно работать дальше
 
@AK я бы предложил перенести весь этот флуд, раз все равно похоже у @webstackoverload нет его кода и возможно от просто потроллить решил :)
 
@webstackoverload нельзя вернуть объект если возвращаемый тип-VOID
 
@webstackoverload я не спрашиваю про задачу, которую ты сейчас придумываешь на ходу :-) я спрашиваю какую именно задачу ты решал и как именно ты ее решил
 
2:16 PM
@iluxa1810 я ЗНАЮ, это пример функции, вот сделайте так чтобы она вернула ОБЬЕКТ
 
@webstackoverload public List<int> ReturnObject() { return new List<int>(){1,2,3}}
 
:52873917 нет, примером должен быть твой рабочий код с dynamic
 
если упростить ObjectTypeToReturn returnObject(){return new ObjectTypeToReturn();}
 
@iluxa1810 Пример у нас Label а не List
 
без него, никто так и не угадает что именно ты хочешь на самом деле :)
 
2:18 PM
@webstackoverload Label GetLabel {return new Label()}
 
@iluxa1810 dynamic public dynamic ReturnObject () { }
 
@webstackoverload зааачееем?
 
A K has unfrozen this room.
 
@iluxa1810 Потом что так совпало
 
@AK я в пути :)
 
2:20 PM
@webstackoverload Это не ответ. Если ты хочешь, что бы тебе помогли ты должен описать мотивацию.
 
@iluxa1810 Верни мне обьект public dynamic ReturnObject () { }
 
@webstackoverload public dynamic ReturnObject () { return new Label() }
 
@iluxa1810 нет, label уже существует в нашем случае это Label11
К примеру он уже есть на форме и содержит текст
 
public dynamic ReturnObject () { return Label11 }
 
A K
@iluxa1810 Зачем dynamic?? Ведь мы же знаем тип Label1
 
2:23 PM
@iluxa1810 только нужно чтобы label возвращал текст
 
@AK Не знаю, @webstackoverload хочет. Наверное, так более по феншую или ему религия не позволяет использовать конкретный тип.
 
A K
@iluxa1810 просто следующее, что он попросит -- работать с переданным динамиком как с Label, вызывая её .Text
 
185 messages moved from Stack Overflow на русском
 
:52874005 Ну да, в задаче же указанно, возвратить обьект с доступом к его свойствам
 
:52874005 может это бот или нейронка какая-то?=D Не думаю, что есть на столько упертые...
 
2:26 PM
2 messages moved from Stack Overflow на русском
 
@iluxa1810 Причем тут упертые, Вы мне задачу до конца решите
Потому что тут писали что это не может работать
Я утверждаю обратное
 
@webstackoverload ну вы не приводите пруфов и рабочий код.
 
@webstackoverload не надо перевирать слова :-)
не может работать именно тот код, который ты тут приводил в качестве примеров
 
A K
@webstackoverload утверждали -- приведите работающий код
 
а рабочий код ты приводить не хочешь :)
следовательно - у тебя его нет :)
 
2:31 PM
@iluxa1810 Смотрите все просто еще раз повторюсь, я не тролю. Мне просто интересно почему Вы не знаете ответа. public dynamic ReturnObject () { } в нашем случае пусть обьектом будет label11 который содержит текст, Задача состоит в том, чтобы получить текст обьекта
Не нужно там никаких гет сетов и классов.
Решение очень простое, но видать не очевидное либо ранее не приминяемое
 
@webstackoverload по видимому ты все-таки троллишь :-) потому что уже несколько раз тебе сказали, что достаточно заменить dynamic на Label
 
@Grundy нет, нужно чтобы был dynamic
таковы условия
 
@webstackoverload так не нужно же :-)
 
и нужен весь пример
 
с чего ты взял что нужен dynamic? :)
 
2:34 PM
@Grundy так совпало, когда я искал решение данной задачи. Потому что о Label (вместо Dynamic) я не знал.
 
собственно в этом и проблема - тебе доказывали что dynamic в твоем случае не нужен, а сейчас ты говоришь, что условие - использовать dynamic :)
@webstackoverload и никто так и не понял решение какой задачи ты искал :) причем таким образом что нашел только dynamic
 
@Grundy Хорошо, если не нужен, тогда верните мне обьект ComboBox с помощью вашего Label :D
 
а если бы ты сразу привел рабочий пример функции и ее вызова демонстрировавший твою проблему - все решилось бы намного быстрее :)
но ты упорно продолжаешь находу выдумывать задачу старательно избегая реальную проблему :)
@webstackoverload замени Label на ComboBox и всего делов :-)
по твоим словам - это именно то что ты и хочешь
 
@Grundy А как на счет Combobox Label все в одном ? :)
 
@webstackoverload а тут уже зависит от того, какую задачу на самом деле ты решаешь :-)
можно вернуть сразу два объекта
можно вернуть базовый тип и в месте получения привести к нужному
можно разбить на две функции
но любой вариант может как подойти так и нет, в зависимости от задачи :)
но ты ее так и на сформулировал :)
 
2:40 PM
То есть Вы говорите что можете создать метод, один метод ! которы будет возвращать обьекты типа ComboBox и Label ?
Как вы такое утверждаете если Вы еще не решили даже простую задачу, с помощью возвращения обьекта Label11
 
@webstackoverload точно также как ты говоришь что у тебя есть рабочий метод, который ты даже используешь :)
 
Код я использую, но решил уточнить здесь верно ли такое, как оказалось тут об этом и не слышали, а только о конкретно типизированных методах где подставляется как я понимаю сразу обращение к конкретным обьектам типа public Label ....
 
A K
Я напоминаю, что вы упорно хотите выстрелить себе в ногу. Если у вас есть метод который возвращает комбо, а вы попытаетесь туда присвоить лэйбл -- то компилятор вас предупредит. А если вы создадите метод, который возвращает либо то, либо то (а де-факто: абсолютно всё что угодно) то компилятор уже не сможет вас предупредить.
И вы такое офигенное открытие сделали... которое до вас никто не делал. Знаете почему? Потому что если даже кто-то и открывал этот способ -- он понимал, что гордиться новым способом прострелить себе ногу нет смысла. И промолчал.
@Grundy Э-э, не надо вот! )) Теперь моя очередь напоминать, что надо стрясти с него работающий пример.
 
@AK так нет рабочего примера-то как я понял :-)
 
@AK Почему в ногу, если я знаю что этот конкретный метод возвращает существующие обьекты ? Там ошибки в принципе уводятся на ноль, потому что компилятор предупредит что такого обьекта НЕТ если его нет в форме либо где, но там нужно поэсперементировать
 
2:45 PM
@webstackoverload Чем Дженерик плох? Он может возвращать все, что угодно и теряется безопаность типов.
 
A K
@Grundy Зато какой троллинг!! "Как вы такое утверждаете если Вы еще не решили даже простую задачу, с помощью возвращения обьекта Label11" и я открыл новый гениальный метод, который никто не видел ранее, скромно так: "Решение очень простое, но видать не очевидное либо ранее не приминяемое"
 
@webstackoverload то есть ты спрашиваешь верен ли твой код, который ты не хочешь показать? :-)
@AK о чем и речь :-)
 
@AK На счет ошибок, нужно будет поэсперементировать, но думаю сама логика их исключает, потому что это в принципе - работа с реальным существующим обьектом и если его не будет сущетсовать компилаятор об этом укажет
@AK Так что думаю такой способ должен работать нормально и даже а ошибки будут сводится к нулю, потому что нет каких-то посторонних промежуточных решений
 
A K
@webstackoverload Ну ещё бы -- ведь вы будете пользоваться этим мега-методом точно зная, какой именно объект вы в данный момент используете, а значит: могли использовать более узкий тип.
А если не будете точно знать, какой именно тип... вот тогда желаю насладиться в полной мере удачным выстрелом в ногу!
чао! И -- удачи!
 
@AK А что Вы имеете ввиду под словом ТИП ?
@Grundy Показывать не буду, только после решения задачи.
 
2:52 PM
@webstackoverload которую никто не угадает, потому что ты не можешь ее сформулировать :-)
на этом можно в принципе и закончить :-)
 
@Grundy Формулировка простоя, создать динамический метод возвратить обьект и далее получить доступ к его свойствам типа Text и т д
Кто знал что так выйдет, задал называется вопрос...
 
@webstackoverload уже несколько раз был дан ответ, но он тебя не устроил, потому что ты считаешь у тебя другая задача :-)
@webstackoverload так суть же в том, что на уточняющие вопросы, ты говоришь буквально - угадайте :)
и если решение не совпадет с моим, которое еще неизвестно есть или нет - то будет неверно :)
 
@Grundy задача так же, но решение ее другое, Вы решаете с указанием в методе того что нужно возвращать к примеру public Label public Combobox, решите эту задачу без указаний типов ? этих
 
@webstackoverload а зачем решать конкретную задачу другим способом? :-)
 
@Grundy потому что он я полагаю универсален
 
2:57 PM
то есть есть задача, есть решение - ты не говоришь почему оно не устраивает, ты просто говоришь, что у тебя возможно есть код который что-то делает по другомуё
@webstackoverload универсален для чего? :-)
 
@Grundy Ну возвратите мне обьекты Label11, Combobox1 одним методом
 
@webstackoverload я привел 5 вариантов решения :)
ты ни одного
учитывая что ты про себя решаешь какую-то задачу, которую не хочешь рассказать, но хочешь чтобы ее тоже решили :)
по сути не важно что именно будет возвращать метод, важно что именно он делает, и как этот результат будет использоваться
 
@Grundy Дело в том что ваши варианты даже если и работают, то очень накладны в реализации
 
@webstackoverload это ты как оценил :-) накладные по сравнению с чем? :)
 
@Grundy по сравнению с простотой моего варианта
 
3:00 PM
@webstackoverload которого вероятно вообще нет :-)
действительно, любой код будет накладен по сравнению с отсутствием кода :)
 
@Grundy Есть ибо ради чего вся это дискуссия
 
@webstackoverload нету :) иначе давно бы показал
дискуссия - это просто попытка узнать что именно ты решаешь :-) но ты упорно не хочешь говорить :)
поэтому в принципе решение не может быть найдено, и ты не узнаешь о плюсах и минусах своего подхода, которые тебе могли бы указать.
 
@Grundy Так я не показываю только потому, что хочу чтобы вы сами решили простую задачу, именно по данным условиям, потому что примеры которые вы приводили решают ее по отдельности и они не являются универсальными
 
@webstackoverload так я ж решил кучей способов :-) в то время как ты так и не можешь показать свое решение, которое очевидно у тебя отсутствует :-)
собственно твое решение само по себе не интересно, интересно узнать какую именно задачу ты решал
то есть - что именно делает твоя функция, и как/где используется ее результат
 
@Grundy Как это не интересно, если Вам нужно писать 2 - 10 методов, а мне один ? :)
 
3:07 PM
@webstackoverload с чего ты взял что мне нужно писать 2-10 методов? :-)
не надо додумывать :-)
 
@Grundy Ну так как Вы методом возвратите Label11 и Combobox1 ?
 
@webstackoverload я ответил на этот вопрос, но ты продолжаешь его задавать :-)
 
@Grundy Да, вы ответили что там что вернете, сделает еще что-то и т д. Я же говорю об универсальности (пока что) и простоте. На счет ошибок нужно будет поэсперементировать что говорит компилатор, на чем настаивал АК
 
@webstackoverload а с чего ты взял что приведенные мной варианты не простые? :-) ты же не показываешь с чем сравниваешь :-)
по сути любой из моих вариантов - проще, быстрее и безопаснее твоего "универсального"
 
@Grundy Почти убеждет что мой метод 90% безопасный и более простой.
@Grundy Потому что, ошибки так исключены, от слова совсем, только что проверил
 
3:13 PM
@webstackoverload собственно осталось только сравнить :-) но без кода это сделать невозможно :-)
@webstackoverload спорим не исключены? :-)
самому нельзя проверять свой код, потому что ты всегда будешь проверять только безопасные варианты
так как ты сам знаешь, что этот путь безопасен - ты его и выберешь для проверки
 
@Grundy Именно, верно, только вот в моем случае, я считаю его безопасным, потому что он приравнивается к работе реальных обьектов
В общем о чем мы говорим, решить задачу, простую, не кто не может, не нужно создавать классы, использовать гет сеты, все проще.
 
@webstackoverload это ты почему так думаешь? и что значит приравнивается к работе реальных обьектов?
@webstackoverload а кто говорил-то про классы, гет сет и т.д.? в моих вариантах ничего этого не было :-)
ты опять все додумал и решил что твое решение лучше :-)
 
@Grundy В ваших вообще ничего небыло, вариатны приводил AK
 
@webstackoverload то есть мои решения лучше AK. @AK, приводил решения для задачи которую ты сформулировал. Но почему-то оцениваешь его решение ты по какой-то другой задаче :)
 
Тогда думайте, как решить, повторю условия: создать простой МЕТОД без классов и так далее, который бы возвращал ОБЬЕКТ, с которым, далее можно работать, а именно с его свойствами.
 
3:21 PM
@webstackoverload я-то решил как минимум 5ю различными способами :-) а ты так ни одним и не решил :)
собственно повторюсь
15 mins ago, by Grundy
собственно твое решение само по себе не интересно, интересно узнать какую именно задачу ты решал
15 mins ago, by Grundy
то есть - что именно делает твоя функция, и как/где используется ее результат
 
Вам поставили конкретную задачу, а Вы решаете ее с помощью других условий, это не решение, я хотел бы чтобы Вы пришли к правильному решению именно по данным условиям, а не конечной цели
 
то что ты написал dynamic в качестве возвращаемого значения функции - не значит что ты решил какую-то задачу :-)
@webstackoverload ты не можешь оценить правильность решения, потому что не знаешь какую задачу решаешь :)
то есть, считать что решение которое придумал ты правильное просто потому что его придумал ты - в корне неверно
 
@Grundy В задаче все написанно, возвратить ОБЬЕКТ, Label11 к примеру и получить доступ к его свойствам, при этом не указывая в методе что-то типа public Label
Все просто и понятно : )
 
@webstackoverload у тебя каждый раз условие задачи меняется :-)
собственно почему ты думаешь что пять моих вариантов не решают поставленную задачу? :)
 
@Grundy Они возможно решают, но не по условиям поставленной задачи, ведь в этом смысл
 
3:27 PM
@webstackoverload с чего ты взял? почему ты думаешь что твое решение решает?
я уверен, что твое решение не соответствует условиям
 
@AK Доброго
@Grundy Решает потому что оно работает : )
 
@webstackoverload это ты думаешь, что оно работает
на самом деле оно может работать только на тех вариантах, которые ты проверил, а на всех остальных все будет плохо
и опять все упирается в то, что ты думаешь, что ты не можешь ошибиться :-) это не так
 
Не знаю, будет время, проверю, сейчас нужно выполнять тестовые задания..
 
1 message moved from Stack Overflow на русском
 
@Grundy Доброго, к сожелению нужно идти
 
3:31 PM
@webstackoverload собственно каждый остался при своем, ты с неэффективным решением непонятно какой задачи, и все остальные с решениями - непонятно какой задачи :)
 
 
1 hour later…
4:47 PM
@AK А вдруг и правда, "Я нашел поистине чудесное решение, но поля книги чат слишком мал для него"? И теперь следующие 300 лет программисты будут пытаться воспроизвести это решение...
 
A K
5:44 PM
@Yaant Гипотетически такое возможно. Но если топикстартер так упорствует в том, чтобы показать своё решение -- значит, дело не так чисто, как могло бы быть. Не пытать же его клещами? :)
 
6:07 PM
Ух ты, а я и не знал, что такой чат есть :)
 
6:37 PM
@AK Почему не чисто, функция возвращает обьект, с которым потом можно работать, также иметь доступ к его свойствам. Если это работает, почему это не должно быть чисто ? В смысле правильности подхода, возможно, но это работает, причем так, что возникновения ошибки именно при работе - сводится к 0
 
7:20 PM
@webstackoverload dynamic, несомненно, является удобным способом обратиться к произвольному свойству произвольного объекта. Кроме того, он позволяет делать и многие другие интересные вещи. Но использование dynamic в качестве возвращаемого значения имеет особый недостаток: оно принудительно выключает ВСЕ проверки уровня компиляции для ВСЕЙ ветки выражения после вызова этого метода. Возьмите такой пример:

using System;

class Program
{
public static dynamic CalcSum(dynamic x, dynamic y)
{
return x + y;
 
@MSDN.'ReinstateMonica'Knight Я понял, но почему все ходят вокруг до около, вот Вы понимаете суть, но не привели пример из задачи, если Вам конечно интересно. По поводу отловить на этапе, как раз в этом смысл, что код можно использовать ? И не выйдет сделать ошибку если возвращать object
Получается что код можно использовать и ошибку в нем допустить сводится к 0
В моем случае проверки все работает еще до компиляции, как Вы сами это написали, так что словить ошибку не выйдет никак, а значит способ этот не только интересный но и работает. А так в принципе если использовать его как в Вашем примере, то конечно такое не допустимо и опасно
 
8:36 PM
@AK Вопрос, считается ли не верным, применять метод, который еще до компиляции может сообщить об ошибке ? (Это я о методе с обьектом). То есть логика получается не нарушается, даже если используется dynamic. Но, если его использовать в других случаях не именно к обьекту, тогда нет способа сразу определить ошибку, программа запуститься с ошибкой и потом лови зайца в поле (тут я согласен, что динамик применять нельзя).
 
A K
@webstackoverload Чувствуете, как изящно вы добровольно хотели прострелить себе ногу? Разумеется, лучше ошибку выловить как можно раньше: цена ошибки, которую заметил тестировщик ниже ошибки, которая докатилась до продакшена, цена ошибки пойманная программистом ниже цены ошибки, пойманной тестировщиков. Чем раньше вы сами отловите ошибку -- тем вам же проще.
Вы можете запустить всю программу целиком, но можете написать модульные тесты и не запускать программу.... А уж ситуация, когда код не компилируется -- ну что может быть идеальнее для отлова ошибок?
Написав динамик вы перенесли ловлю ошибок из compile time в runtime
Подчёркиваю: добровольно.
 
@AK Немного не понял, ошибка возникает прям во время ее написания ! То есть, допустить запустить программу с ошибкой у Вас никак не выйдет, чем это плохо ?
 
A K
@webstackoverload Пока вы пишете код -- IDE его компилирует прямо на лету (точнее -- осуществляет разбор кода, но неважно). Чем плохо? Тем что, у вас нет (работающей) программы! )
 
@AK Да ? Так это можно сравнить к примеру я напишу не суще label123 тоже самое можно сказать : )
@AK На счет динамика Вы правы, но не в применении рельных существующих обьектов : )
Вы все почти твердите о том что динамик плох что допускает программе запускаться с ошибками - но в моем случае динамик работает в методе в котором вы просто не сможете сделать ошибку так чтобы она запустилась : )
 
A K
8:53 PM
@webstackoverload М, готовы показать рабочий код? Удивите же нас наконец!
 
Поэтому я и приравниваю свод ошибок к 0
 
A K
"У меня есть гениальная штука, но я вам её не покажу"?
 
Нет, я хочу чтобы Вы сами написали, Monica во флуде верно писал, но не написал код именно с задачи, он там привел код, как ДОПУСКАТЬ можно ошибки с помощью Dynamic то есть как он их может пропускать.
 
A K
Не, я пас.
Возможно, вы придумали ерунду, возможно вы нашли какой-то давно известный паттерн, возможно придумали новый.
Можете оставить себе.
 
@AK Посмотрим, что ответит Monica, он вполне все верно высказал, но привел пример не из задачи, а свой об ошибках..
@AK Вы пробовали ?
 
A K
8:56 PM
Я за что уважаю культуру сайта StackOverflow -- за то, что она подразумевает, что знаниями делятся. Не хотите -- не надо.
 
@AK Я все это понимаю, суть не в этом. Я мог бы написать код уже давно.
 
A K
Ну подогревая ожидания вы только больнее потом упадёте, в случае если окажется, что ваша гениальная штука.... ну хотя бы давно известна, не говоря уж о случае, когда окажется, что она не работает или слишком громоздка и можно проще и лучше.
 
9:09 PM
@AK не компилирует, а производит статический анализ кода)
 
@SuvitrufsaysReinstateMonica Ну, что-то в этом роде
@AK Вы полагаете возвратить обьект методом нужен громоздкий код ?, подогревать мне не нужно, у меня интерес возник, знают ли здесь как это сделать, раз уж у меня так вышло
 
A K
@webstackoverload Знают ли ответ на незаданный вопрос? Лол.
Вы постоянно меняли формулировку. Как только вам показывают пример -- вы приводите ещё одно неучтённое условие.
 
@AK Падать мне тоже некуда, так как я только начал писать на c# тестовые задания, начинаю понимать что к чему, ибо я бы тут у Вас вопросы не спрашивал
 
A K
А сейчас вдруг до вас доходит, что ваш код даже не компилируется. Это лучший пример того, что @Grundy сказал, что у вас работающего кода ПРОСТО НЕТ!
 
@AK Как это не компилируется, он на столько простой что как я уже сказал, что ошибку там допустить нельзя, так как она сразу ловится статическим анализатором кода (как указал выше Suvitruf)
 
A K
9:22 PM
@webstackoverload Лично я уже сказал "пас". Можете поискать других интересантов, кто поиграет в вашу загадку.
 
@AK Я тоже пас, я просто понял, что лучше не писать, то что выходит как бы за рамки стандарного применения. Потому что вместо интереса к задаче в конеце еще останешься виноватым. Моника во флуд руме все верно сказал, но не написал код по задаче только. А говорит верно. Напишет, отвечу, нет, забудем это
 
A K
Почему виноватым? Вину ты сам на себя навешиваешь.
 
9:39 PM
@MSDN.'ReinstateMonica'Knight у объекта вроде + не определен, то есть мы их сложить не сможем :)
@AK сам с собой поговорил, решил что остальные не правы, круто чо :)
@webstackoverload она не может ловиться статическим анализатором при использовании dynamic об это и написал @MSDN.'ReinstateMonica'Knight
36 messages moved from Stack Overflow на русском
@webstackoverload, продолжай здесь
 
 
1 hour later…
10:57 PM
@Grundy С обьектом может.
Если Вы в методе напишите несуществующее имя обьекта - это по вашему что тогда будет ?
 
@webstackoverload я не напишу :)
 
03:00 - 23:0023:00 - 00:00

« first day (1680 days earlier)      last day (47 days later) »