Ошибка 130 - вызов неоднозначен между следующими способами или свойствами

public static class MyExtensions
{
    public static bool TextBoxIsEmpty(TextBox txtControl, ErrorProvider eP)
    {
        if (txtControl.Text == string.Empty)
        {
            eP.SetError(txtControl, "You must Enter something!");
            return true;
        }
        else
        {
            eP.Clear();
            return false;
        }
    }
}

Я использую эту функцию по всему моему проекту для проверки пустого текстового окна. Он работает нормально, пока я не добавлю один пользовательский элемент управления в один из моих WinForms. В частности, когда источник данных Grid изменяется, экземпляр этого элемента управления пользователя добавляется в мою форму, но я получаю эту ошибку.


Ошибка 129 Вызов неоднозначен между следующими методами или свойствами: «DominateVehicle.Class.MyExtensions.TextBoxIsEmpty (System.Windows.Forms.TextBox, System.Windows.Forms.ErrorProvider)» и «DominateVehicle.Class.MyExtensions». TextBoxIsEmpty (System.Windows.Forms.TextBox, System.Windows.Forms.ErrorProvider) 'D: \ Vechel_Dominate \ a \ DominateVehicle \ frmDefectClass.cs 30 41 DominateVehicle


Я не знаю, какие отношения существуют между добавлением пользовательского элемента управления и этой ошибкой? Если я удалю UserControl, мой код не работает, и я получаю сообщение об ошибке. Что я делаю?

1
nl ja de
вы определили эту функцию в 2 классах. И поскольку это метод расширения, вызов неоднозначен (значит, компилятор не знает, какой из них выбрать)
добавлено автор dognose, источник
-1 для этого не-предложения: «Я использую эту функцию по всему моему проекту для проверки Err для пустого текстового блока, он работает нормально, пока я не добавлю один пользовательский элемент управления в один из моих winform, когда источник данных изменения сетки добавит один экземпляр этого Пользовательский контроль в моей форме, но я получаю эту ошибку "
добавлено автор Daniel Hilgarth, источник
Или, вместо того, чтобы давать нисходящий сигнал, вы можете самостоятельно отредактировать вопрос. Рад, что вы объяснили свой downvote. +1. Я редактировал вопрос для грамматики.
добавлено автор ouflak, источник

2 ответы

У меня также была эта ошибка.

Всегда, когда я добавлял элемент управления в свой проект в одну из моих форм, я больше не мог скомпилировать из-за неоднозначного вызова всем моим методам расширения.

В конце я увидел, что VS добавил ссылку на мой проект в тот же проект, поэтому у компилятора возникла проблема с этим. Тогда это не поможет удалить ваш код, потому что ссылка все еще существует.

Я мог бы решить проблему, удалив эту ссылку из моего проекта. Может быть, это помогает кому-то еще.

3
добавлено

Эта функция определена в двух местах. Проверь это. Компилятор не знает, какой из них вызывать. Найдите в своем решении. Там будут две функции этого имени.

0
добавлено
Я проверяю весь мой проект, эта функция находится именно в этом классе!
добавлено автор Ali Jockar, источник
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

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

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