C#非静态的字段、方法或属性要求对象引用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#非静态的字段、方法或属性要求对象引用相关的知识,希望对你有一定的参考价值。

using Microsoft.Office.Interop.Excel;
double A1 = 1;
double A2 = 1;
double A3 = 1;
Microsoft.Office.Interop.Excel.WorksheetFunction.Sum(A1, A2, A3);
报错
求如何解决

错误原因:WorksheetFunction接口下的Sum()方法是非静态的,需要用对象来调用。

解决方法:必须先声明ApplicationClass类的对象,再用这个对象来调用。具体代码如下:

static void Main(string[] args)
        
            double A1 = 1;
            double A2 = 1;
            double A3 = 1;
            ApplicationClass excel = new ApplicationClass();//声明对象
            //用对象调用WorksheetFunction下的方法
            double b = excel.WorksheetFunction.Sum(A1, A2, A3);
            Console.WriteLine(b);
            Console.ReadKey();
        

回答补充:1.如果在声明ApplicationClass对象时提示“无法嵌入互操作类型 请改用适用的接口”,先在项目的“引用”下找到Microsoft.Office.Interop.Excel,然后右键-属性,将“嵌入互操作类型”修改为false。

2.实际上转到定义可以发现,ApplicationClass类里面有这么一个东西:

而这个类型就是那个WorksheetFunction接口

参考技术A 说明你在定义Rigidbody20类的时候,其中velocity字段不是static的。
所以需要先new一个Rigidbody20类的对象,再给这个对象的velocity字段赋值。
参考技术B 回答

VS提示“非静态的字段、方法或属性要求对象引用”时说明该类的中方法没有STATIC不是静态的.有非静态的字段、方法或属性,要求该类必须实例化。即:classA a=new classA();再a.f();

提问

namespace Y. DAL

public Goods

public add bool(y.Model.Goods.goods){return Y.DAL. Goods. add(goods)

VS提示“非静态的字段、方法或属性要求对象引用”

这个应该怎么改成静态

回答

稍等

提问
回答

三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model)转载请注明出自朱朱家园http://blog.csdn.net/zhgl76881、实体类库(Model),主要存放数据库中的表字段。操作:(1)先建立实体类库Model,打开项目,在解决方案中右键--》添加--》新建项目--》选中类库--》改名Model--》确定(2)选中Model类库--》Shift+ALT+C--》建立实体类。UserInfo类2、数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作 操作: (1)先建立数据访问层类库DAL,打开项目,在解决方案中右键--》添加--》新建项目--》选中类库--》改名DAL--》确定(2)在DAL中添加对Model的引用,选中DAL--》Alt+P+R--》解决方案--》项目--》选中MOdel--》确定(3)在DAL中添加对system.configuration的引用,选中DAL--》Alt+P+R--》程序集--》框架--》选中System.configuration--》确定(4)建立数据访问类,选中DAL--》Shift+ALT+C--》建立数据访问类。UserDB类

提问

你这个我知道,我想问我这个错误解决

你好,你知道我这个问题怎么解决嘛?

回答

您好,亲classProgramstring mm; //mm为非静态变量void nn() //nn()方法为非静态方法Console.WriteLine("0",mm);staticvoid Main(string[] args)Program n= newProgram(); //先为非静态变量和方法建立一个索引n.mm="我是非静态变量"; //通过索引n 赋值非静态变量n.nn(); //通过索引 n 调用方法Console.ReadKey();Program n= newProgram(); 这行代码就是为非静态字段、方法、属性建立了索引n

举个C#类中非静态的属性的用法:Class aprivate int b;// 非静态成员变量public int getB()return b;public void setB(int _b)b=_b;//使用:a _a=new a();_a.b=5;//使用方法类似。

急 字段初始值无法引用非静态字段、方法或属性“Common.Helper.ns”

Helper.cs 和NhSql.cs 在同一类库下面 报错类型如标题 报错地方下面有标注
using System;using System.Collections.Generic;using System.Linq;using System.Text;using NHibernate;using Model;
namespace Common public class Helper NhSql ns = new NhSql(); private ISession _session = ns.GetSession();//这里报错 字段初始值无法引用非静态字段、方法或属性 public void add(Object pl) _session.Save(pl); _session.Flush();

把你定义的函数 都加上 static

public static ISession GetSession()

参考技术A

错误说的很清楚,你应该在Helper这个类的构造函数中进行:

NhSql ns = new NhSql();
ISession _session = ns.GetSession();

初始的时候不能引用非静态字段、方法或属性。

追问

该怎么改 小白跪求

该怎么改 小白跪求

参考技术B private ISession _session;
public Helper()
NhSql ns = new NhSql();
_session = ns.GetSession();

以上是关于C#非静态的字段、方法或属性要求对象引用的主要内容,如果未能解决你的问题,请参考以下文章

C# 字段初始值设定项无法引用非静态字段、方法或属性

C# 字段初始值无法引用非静态字段、方法或属性

C# 字段初始值设定项无法引用非静态字段、方法或属性

VS提示“非静态的字段,方法或属性要求对象引用”

字段初始值无法引用非静态字段、方法或属性

字段初始值设定项无法引用非静态字段、方法或属性