精华内容
下载资源
问答
  • C# 对象对于引用非静态字段、方法或属性是必需的

    万次阅读 多人点赞 2018-07-26 16:04:28
    “static都是在类初始化的时候加载的,而非静态的变量都是在对象初始化的时候加载。” 话是我偷的,真心是送给你的。 参考网址:https://blog.csdn.net/qq719365064/article/details/52925176...

    近期回顾三层架构知识,遇到了该问题,但是不想使用static静态方法解决问题。所以查阅了另外一种解决方法。

    有图有真相。

    错题

    错误

    错题

     

    “static都是在类初始化的时候加载的,而非静态的变量都是在对象初始化的时候加载。”

    话是我偷的,真心是送给你的。

    参考网址:https://blog.csdn.net/qq719365064/article/details/52925176

    展开全文
  • amespace Traffic { class Program { static void Main(string[] args) { AddPassenger(new Compact()); AddPassenger(new SUV...错误提示为:对象引用对于非静态的字段、方法或属性,object.string()是必须的?
  • 首先你要弄清楚对象和实例的关系,坛子里也有很有人问过,比如你有一个窗体类Form1,这只是一个类,它是一个对象,但他在没有实例化之前,在内存中是不存在的,也就是说类Form1表示我是一个窗体图纸,但还没有实际生产出来 ...

    首先要弄清楚对象和实例的关系,比如你创建了一个窗体类Form1,这只是一个类,它是一个对象,但它在没有实例化之前,在内存中是不存在的,也就是说类Form1表示我是一个窗体图纸,但还没有实际生产出来
    使用Form1 frm = new Form1()以后,创建了一个实际存在的窗体frm,也就是创建了Form1类的一个实例frm,这个时候frm.Show()就可以显示出你创建的那个Form1窗体类的实例frm,实例frm窗体的样子就是Form1类的窗体的样子,因为frm是Form1的实例。
    这时如果你又创建了另一个窗体类Form2,使用Form2 frm2 = new Form2(),这样创建的窗体实例frm2就是窗体类Form2的实例,frm2.Show()显示出来的样子就是Form2窗体类的那个样子,因为frm2是Form2窗体类的实例。
     

    与VB的区别

    之前使用VB做过课设,再用VS中的C#可视化时就很困惑,一直出bug不知道该怎么用,这是因为两个工具中的新建窗体的含义不同,VB中点击新建一个窗体,创建的这个窗体就是一个实例,写代码不需要写new语句,只需要调用这个窗体的show方法就可以显示新创建的这个窗体实例(比如vb中点击新建了一个窗体frm,代码中只需要写frm.show();即可显示该窗体,窗体frm就是一个实例);而VS中C#的.net项目里点击新建一个窗体,创建的这个窗体是一个类,一个对象,不是一个实例,在代码里需要写new语句才是在你这个程序里创建了一个这个类的窗体实例,然后使用show方法可以显示出这个窗体实例,需要注意一切操作都是对这个实例进行操作,调用的方法都是这个实例的方法。

    展开全文
  • C# 中,当主函数调用另一个非静态函数时总是提示: “对象引用对于非静态的字段、方法或属性是必需的 ” 一、错误分析 1、因为 f02() 是非静态函数;而主函数 Main 前有关键字 static ,其为静态函数。所以当...

    在 C# 中,当主函数调用另一个非静态函数时总是提示: “ 对象引用对于非静态的字段、方法或属性是必需的

    一、错误分析

    1、因为 f02() 是非静态函数;而主函数 Main 前有关键字 static ,其为静态函数。所以当静态函数调用非静态函数时,会出现如上所示的错误。

    2、C# 的类的静态方法规定:类中静态的方法、成员函数只能访问静态的数据成员或者静态的方法。 使用了关键字 static 代表是静态方法,该静态方法只能调用外面其他的静态函数或静态变量(对于外部的非静态函数或变量,都不能调用)。

    二、解决方法

    方法一:在被调用的非静态函数或变量前加 static 关键字,将其变成静态方法或变量。以被静态函数调用。

    方法二:将被调用的函数封装在另一个类中,然后在主调函数中对被调函数所在的类进行实例化,通过该实例化的对象来对该方法进行调用。此时被调函数前就不需要再加 static 关键字。

    【总结】:“static修饰的函数或变量都是在类初始化的时候加载的,而非静态的变量都是在对象初始化的时候加载。”

    三、static 用法拓展

    1、在一个类中,由 static 修饰的方法或变量,如果在别的类中进行调用时,只能通过类名来进行访问。

    2、当构造对象的时候,对象中只包含普通字段,不包含静态字段。


    参考资料:

    [1]  C# 对象对于引用非静态字段、方法或属性是必需的

    展开全文
  • C#报错提醒:“对象引用对于非静态字段、方法或属性是必需的” 原因:类中静态的方法、成员函数只能访问静态的数据成员或者静态的方法。 所以当静态函数调用非静态函数时,会提醒报错。 解决方法: 1、把调用的函数...

    C#报错提醒:“对象引用对于非静态字段、方法或属性是必需的”

    原因:类中静态的方法、成员函数只能访问静态的数据成员或者静态的方法。
    所以当静态函数调用非静态函数时,会提醒报错。

    解决方法:
    1、把调用的函数变成静态的,在它定义前加static
    2,通过实例化一个对象来调用那个非静态函数

    展开全文
  • 这是由于静态变量和非静态变量的初始化顺序导致的,由于在C#编译器中静态变量的初始化顺序>非静态变量,所以GetInstance>instance的初始化顺序,这时,编译器发现instance没有被初始化,就会提示instance没有被引用,...
  • C#静态与非静态

    2019-04-02 16:17:17
    为什么需要静态特征 在自定义类或看.NET Framework类库中都可以发现,类中大部分都是具体实例特征(也就是没有static标识的),同时我们也能看到一些具有静态特征的类或成员,例如我们经常使用的Console类以及...
  • 用Globals解决
  • 我参照的帖子: 【子窗体调用父窗体变量或方法】:  将父窗体下的变量设置为全局静态变量。 ... 如字符串类型prj_path: ...处显示对象引用非静态的字段方法或属性“Form1.comboBox1.Text”是必需的
  • 学习内部嵌套类型时,提示如题信息其实就是你要使用的字段,方法或属性是非静态方法,你要在实例化对象中使用它们内部类型代码public class Team { public static int person...
  • 问题:字段初始值设定项无法引用非静态字段、方法或属性的问题 下面代码出错的原因,在类中定义的字段为什么不能用? (1) public string text = test(); //提示 字段或属性的问题字段初始值设定项无法引用非静态...
  • 1、什么是静态类和非静态类 (1)、静态类 在类的建立上加上static关键词 比如我们在看C#视频中使用的File类,就是静态类。定义这个类时 public static class File (2)、非静态非静态类,就是在定义类的...
  • C#面向对象——静态类和静态成员

    千次阅读 2020-04-02 18:07:57
    使用 static 修饰符声明属于类型本身而不是属于特定对象静态成员。 static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。如, static class ...
  • 刚学习C#时,在类内定义变量时,经常会出现标题内容的问题,即字段初始值无法引用非静态字段、方法或属性。这是为什么呢? 下面我们拿一个小程序来举例子。关于的ArrayList 实例t的3种不同的生成方法。 class ...
  • 非静态方法总结 总结的C# 静态方法&非静态方法总结,有不正确的请指正 操作 静态方法 非静态方法 同个类中调用 方法名()前面不用加类名或对象名 实例化类后调用即new一次 不同类中调用 类名.方法名...
  • 问题:字段或属性的问题字段初始值设定项无法引用非静态字段、方法 下面代码出错的原因,在类中定义的字段为什么不能用? public string text = test(); //提示 字段或属性的问题字段初始值设定项无法引用非...
  •  静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次...
  • 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,...
  • vs中如果出现错误提示“非静态的字段、方法或属性要求对象引用”时 说明该类的中方法没有static 不是静态的.有非静态的字段、方法或属性,要求该类必须实例化...在static 静态的方法函数中引用非静态的方法导致 ...
  • 最近C#编程中经常出现错误“非静态的字段、方法或属性“进程委托.Program.writeEvent()”要求对象引用” 下面是总结的静态方法与非静态方法的比较sC#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的...
  • C# 非静态类和静态类

    2016-05-15 09:29:41
    一、非静态类中的规则 二、静态类相关规则 三、类的修饰符
  • 遇到C# 报错 “非静态的字段、方法或属性 要求对象引用”,一开始以为要加上ref或者out, 结果试过也不行。百度易一下才发现是这是因为类的静态方法规定的,类中静态的方法、成员函数只能访问静态的数据成员或者...
  • 一、引言 在C#中,静态和非静态的特征对于我们来说是再熟悉不过了,但是很少看到有一篇文章去好好地总结静态和非静态它们之间的不同,为了帮助大家更好地去理解静态和非静态特征, 所以将在这篇文章中帮大家全面总结下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,637
精华内容 15,454
关键字:

c#对象引用非静态

c# 订阅