54

我的程序中不断出现以下错误:

'System.Windows.Forms.TextBox.Text' is a 'property' but used like a 'method'

Non-invocable member 'System.Windows.Forms.Control.Text' cannot be used like a method.

这是代码:

if (OffenceBox.Text != "")
   {
 AddBook(int.Parse(AgeBox.Text), NameBox.Text, AddressBox.Text, (HeightBox.Text), OffenceBox.Text());
   }
   else
   {
   MessageBox.Show("Age must be max 3 numbers in length");
   }
   }

我该如何解决这个问题?

编辑:修复了错误,现在遇到了另一个: Argument 4: Cannot convert String to int我似乎无法解决问题。

4

4 回答 4

95

在您编写“OffenceBox.Text()”的地方,您需要将其替换为“OffenceBox.Text”。它是一个属性,而不是一个方法——线索就在错误中!

于 2013-08-08T20:44:26.687 回答
9

发生这种情况是因为您试图像方法一样使用属性“OffenceBox.Text”。尝试从中删除parenteses OffenceBox.Text(),它会正常工作。

请记住,您不能在类中创建同名的方法和属性。


顺便说一句,某些别名可能会让您感到困惑,因为有时它是方法或属性,例如:“Count”别名:


命名空间:System.Linq

using System.Linq

namespace Teste
{
    public class TestLinq
    {
        public return Foo()
        {
            var listX = new List<int>();
            return listX.Count(x => x.Id == 1);
        }
    }
}


命名空间:System.Collections.Generic

using System.Collections.Generic

namespace Teste
{
    public class TestList
    {
        public int Foo()
        {
            var listX = new List<int>();
            return listX.Count;
        }
    }
}

于 2016-01-25T18:33:12.930 回答
4

正如错误明确指出的那样,OffenceBox.Text()它不是一个函数,因此没有意义。

于 2013-08-08T20:44:00.663 回答
1

我遇到了同样的问题,并意识到删除括号是有效的。有时,如果您是唯一一个工作了一段时间的人,那么让其他人阅读您的代码可能会很有用。

例如

  cmd.CommandType = CommandType.Text(); 

替换:cmd.CommandType = CommandType.Text;

于 2019-01-15T18:14:31.063 回答