Перегрузка метода не знает, как

У меня есть следующие методы:

 public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, string propertyNameOverride = "", QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "")
{
  string qtipPosition = String.Empty;

  switch (position)
  {
    case QTipPosition.Right:
      qtipPosition = "my: 'left center', at: 'right center'";
      break;
    case QTipPosition.Left:
      qtipPosition = "my: 'right center', at: 'left center'";
      break;
    case QTipPosition.Top:
      qtipPosition = "my: 'top middle', at: 'bottom middle'";
      break;
    case QTipPosition.Bottom:
      qtipPosition = "my: 'bottom middle', at: 'top middle'";
      break;
  }

  if (!String.IsNullOrWhiteSpace(propertyNameOverride))
    propertyName = propertyNameOverride;

  if (String.IsNullOrWhiteSpace(title))
    title = htmlHelper.Resource(Resources.Global.Title.Information);

  StringBuilder sb = new StringBuilder();
  sb.Append(String.Concat("$('#", propertyName, "').removeData('qtip').qtip({content: {text:"));
  sb.Append(String.Concat("'", message, "', title: { text: '", title, "', button: false }}, position: { ", qtipPosition, " }"));

  if (includeEvents)
    sb.Append(", show: { event: 'focus mouseenter', solo: true, ready: false }, hide: 'blur'");

  sb.Append(", style: { classes: 'ui-tooltip-shadow ui-tooltip-yellow' } });");

  return new MvcHtmlString(sb.ToString());
}

как я могу это назвать:

 <%: Html.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>      

Мне нужны только эти параметры благодаря

1
nl ja de
мне жаль, что я отредактировал мой OP
добавлено автор charlie_cat, источник
не волноваться спасибо, позвольте мне попытаться понять это :)
добавлено автор charlie_cat, источник
ваш вопрос неясен. объясните, что вы пытаетесь достичь, и как приведенный выше пример неверен ...
добавлено автор Dave Alperovich, источник
Если вы хотите вызывать версию GetQTip с меньшим количеством параметров, вам необходимо создать версию метода, который вызывает исходный метод со значением по умолчанию для параметров, которые вы оставляете.
добавлено автор Security Hound, источник
Что не работает? Какую ошибку вы получаете?
добавлено автор Yogu, источник

1 ответы

Проблема в том, что вы не можете оставить параметр посередине. Вы можете использовать параметры по умолчанию, но те, которые вы оставляете, должны быть последними в списке. Описание MSDN см. Здесь здесь .

Чтобы устранить проблему, у вас есть несколько вариантов:

1) Сделайте параметр propertyNameOverride последним параметром в определении функции следующим образом:

public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "", string propertyNameOverride = "") { 
   //do stuff
}

Вы можете оставить его без проблем.

2) Используйте параметр, но просто поместите значение по умолчанию в:

<%: Html.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, "", Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>

3) Напишите другую функцию только с желаемыми параметрами, которая затем вызывает полную функцию с параметрами по умолчанию в «пустых» местах:

public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "", string propertyNameOverride = "") { 
    return htmlHelper.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, "", Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>
}
1
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)