Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非静态字段、方法或属性需要对象引用';GetType()';_C# - Fatal编程技术网

C# 非静态字段、方法或属性需要对象引用';GetType()';

C# 非静态字段、方法或属性需要对象引用';GetType()';,c#,C#,我遇到了这样的错误: 非静态字段、方法或属性“object.GetType()”需要对象引用 类别: public class Roll { public int Code = 0; public string Name = ""; public DateTime Date = DateTime.MinValue; } 如果你需要更多的信息,请告诉我 谢谢这意味着为了调用(即调用)Roll上的GetType()方法,您需要一个类型为Roll类的对象实例,因为GetT

我遇到了这样的错误:

非静态字段、方法或属性“object.GetType()”需要对象引用

类别:

  public class Roll
{
    public int Code = 0;
    public string Name = "";
    public DateTime Date = DateTime.MinValue;
}
如果你需要更多的信息,请告诉我


谢谢

这意味着为了调用(即调用)
Roll
上的
GetType()
方法,您需要一个类型为
Roll
类的对象实例,因为
GetType()
方法不是静态方法

因此,正如其他人所说,使用
typeof
,如下所示

XmlSerializer rd = new XmlSerializer(typeof(Roll));
您正在尝试将
Roll
实例序列化为文件或其他内容吗 ? 如果是,请尝试下面的示例

例:


您希望将
Roll
类的
Type
对象传递给
XmlSerializer
构造函数,但您使用的是
GetType()
函数,它是一个实例方法,而不是静态方法。实例方法需要从对象调用,而静态方法可以从类本身调用

要执行您想要的操作,在没有
Roll
类型的对象的情况下,使用

XmlSerializer rd = new XmlSerializer(typeof(Roll));

typeof
操作符返回一个
Type
对象,该对象描述作为其参数传递的类。

实际上,这意味着您应该使用
typeof(Roll)
而不是
Roll.GetType()
。即

XmlSerializer rd = new XmlSerializer(typeof(Roll));

从技术上讲,这意味着
Roll
是一个类,
GetType()
是该类的有效实例方法(通过继承),但它不是有效的静态方法。因此,如果
myRoll
Roll
类型的对象实例,您可以调用
myRoll.GetType()
,但是您不能调用
Roll.GetType()

我们没有必要的代码来重现此错误。@Seb告诉我您需要什么,我想要运行的按钮上的代码?这与我需要的无关。你才是需要帮助的人。您需要创建一个演示您的问题的标题。请删除您的问题,使标题更能描述实际问题。这里怎么了?没有任何有意义的信息。问题标题实际上应该描述你正在经历的问题,或者你正在问的问题,这对在搜索结果中找到问题的未来读者很有用。您还没有为单行代码提供上下文。如果你需要我们的帮助。具体说明问题,包括相关信息,并提出具体问题。公共领域反对最佳实践,您应该使用属性。@Shiva我应该把它放在我创建的类中,在我定义输入类型的地方,还是放在定义每个按钮功能的代码中?@Phyti请更新您的问题,添加定义滚动类的代码。确保删除敏感信息(例如:密码或其他专有信息)。@Seb这不是猜测。这就是答案。@miliesmith如果
Roll
不是可以实例化的类型,例如接口或抽象类,该怎么办?那么,这就是答案吗?我的问题是,这个答案依赖于尚未提供的不完整信息。其他答案仍然依赖猜测,但至少更全面,可能涵盖所有可能性。@Seb我最初的答案是完整的,因为OP问错误是什么意思,我向他解释了。在我要求OP用
Roll
class definition更新他的问题后,他这样做了,现在这个更新的答案也完成了。深呼吸,兄弟。
XmlSerializer rd = new XmlSerializer(typeof(Roll));
XmlSerializer rd = new XmlSerializer(typeof(Roll));