0 выключает предупреждения полностью, в то время как 4 самый подробный уровень. Посмотрите документация здесь, который имеет те же уровни предупреждения.
Некоторые люди безумны. Вам следует улыбнуться и кивнуть.
день ... сон ... в ... компьютере ....
«Ты задал ему вопрос?»
«Да»
«Да? он сказал вам, что это был BS? »
« Нет »
« Вы нашли его на StackOverflow, спрашивая, как ответить на вопрос? »
« Да »
« Хорошо, теперь мы знаем. Получите следующий парень здесь "
" Бва ... ха ... ха ... "повторить ...
Тот факт, что k
и d
всегда равны int
, не делает метод менее универсальным, он просто означает что эти параметры всегда равны int
независимо от типа a
, b
& c
.
Все универсальные - это параметризованные типы. Я не знаю, о чем говорит ваш интервьюер. Утверждает ли он, что метод не является полностью универсальным, потому что не все параметры метода имеют универсальный тип?
Вы не обязаны использовать один и тот же тип параметра для всех параметров, и при этом все типы параметров не должны быть универсальными .
Предполагая, что вопрос собеседования является реальным, я поискал в Google "Generics are not" + c # и получил следующее:
У меня вообще нет совпадений для «Универсальные шаблоны не являются полностью универсальными» или «Универсальные не всегда универсальные».
Так вот. Удачи.
Насколько мне известно, это общий метод, поскольку он имеет параметр типа. То, что не все параметры относятся к общему типу, не имеет значения.
Возможно, он имел в виду, что a
, b
и c
должны быть одного типа, но это глупо.
@Udana, могло ли быть так, что интервьюер пытался угадать ваш ответ, задавая вам вопрос, не имеющий смысла?
Однажды у меня было интервью, в котором задавался вопрос теста " каков размер маржи по умолчанию для winform ». Я ответил: «Я не знаю, и мне все равно, так как я могу установить любое значение в конструкторе»
В конце интервью интервьюер сказал мне, что вопрос был уловкой, чтобы увидеть, кто угадает, а кто - будь честным, когда они чего-то не знали.
Он спросил меня, докажу ли я, что это дженерики, и мне будет разрешено принять участие в следующем раунде. Я не знал, чего он ждет от меня, и что он на самом деле имеет в виду, показывая такой пример.
Похоже, этот интервьюер ищет ответы, данные здесь - если ваша формулировка его вопроса отражает его намерения, то он не утверждая, что универсальные шаблоны не являются универсальными, он спрашивает, можете ли вы разумно обсудить «универсальность» указанного метода.
Как отмечали некоторые другие, это общий метод, поскольку он позволяет пользователю определять видимый атрибут функции (в данном случае тип первых трех параметров) в более позднее время. Тот факт, что k и d не являются общими параметрами, может показаться отвлекающим маневром.
Хммм, поздняя публикация, но лучше поздно, чем никогда! : -)
Предполагая, что ваш интервьюер знает его вещи, это действительно вопрос, который интервьюер спрашивает вас, чтобы сделать следующее:
Хороший интервьюер достигнет всех трех, в то время как не так хороший интервьюер, может просто искать способы попытаться поймать вас, потому что он просил интервью у него слишком много кандидатов.
В конце дня, если вы не знаете ответ или понять вопрос, вам лучше говорить так в интервью, и если вы не согласны с заявлением, посмотрите на него как возможность расслабиться и участвовать в обсуждении, а не просто отвечать на вопросы во время интервью.
И для того, что это стоит, ответ заключается в том, что описанный метод является универсальным методом, независимо от того, являются ли некоторые параметры фиксированного типа или нет. Доказательство находится в самом декларации, где общий синтаксис эффективно указывает на компилятору сделать пособия для общих аргументов.
Буквально понимая вопрос:
Эй, это хороший вопрос по дженерикам. интервьюер просто хотел узнать ваше знакомство с дженериками.в имени метода используется просто для указания типа при вызове метода. это может или не может быть указано во время звонка. как
PrintThis("a","b", "c", int k,int d) // to specify <T> as string.
, это будет использоваться только при компиляции. поэтому 3 параметра, в которых указано, будут только одного типа.
PrintThis<string> ("a","b", "c", int k,int d) // explicitly specifying the type when you call the method.
так что мы просто указываем, что он строго типизирован.