Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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#类公共int不能引用非静态int_C#_Class_Static_Xna_Int - Fatal编程技术网

C#类公共int不能引用非静态int

C#类公共int不能引用非静态int,c#,class,static,xna,int,C#,Class,Static,Xna,Int,我遇到了一个小问题,(我环顾四周,对这样的事情进行了改进,但没有帮助)我是否创建了int size=1然后有一个公共intbackgroundWidth=size*Images.Background.Width。当它是一个静态int时,它就工作了,但我想随意更改int。这都在同一个类中,应该可以工作,但它不喜欢乘整数 编辑:10:21 12/3/2013 @德卡斯特罗 我尝试使用给我的格式,但仍然存在一个小问题 因为我使用的是XNA,而且格式可能有点不一致,所以这里有更多的indepf代码: u

我遇到了一个小问题,(我环顾四周,对这样的事情进行了改进,但没有帮助)我是否创建了
int size=1然后有一个公共int
backgroundWidth=size*Images.Background.Width。当它是一个
静态int
时,它就工作了,但我想随意更改int。这都在同一个类中,应该可以工作,但它不喜欢乘
整数

编辑:10:21 12/3/2013

@德卡斯特罗 我尝试使用给我的格式,但仍然存在一个小问题

因为我使用的是XNA,而且格式可能有点不一致,所以这里有更多的indepf代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace **.StartUp
{
    public class Resize
    {
        #region Define
        private int size = 1;
        //
        public int backgroundWidth;
        public int backgroundHeight;
        #endregion

        #region Update
        public static void Update(GameTime gameTime)
        {
        }
        #endregion

        #region public Methods
        #endregion
    }
}
我已经定义了int,但是当我添加代码的下半部分时,它需要一个返回值才能工作。或者我可能把事情复杂化了

我将此添加到公共方法中:

public MyClass()
    {
        backgroundWidth = size * Images.Background.Width;
    }
编辑:10:35 2013年3月12日

现在的错误是该方法需要有一个返回类型,并且不知道该做什么。我正在尽可能多地学习,现在我正在恢复我必须做的事情。如果可能的话,我想得到一些帮助,谢谢

编辑:10:26 12/4/2013

我现在可以调用图像,但使用不同的方法,我仍然使用
Resize
类,但只构建它们,然后在主类中使用它们(
Game1.cs
)。我加了一个布尔,这样当有人想要改变大小时,它就会做一个if语句,并改变整数

Game1.cs
(更新方法):


您必须初始化构造函数中的字段

public class MyClass
{
    private int _size = 1;
    private int _backgroundWidth;

    public MyClass()
    {
        //TODO: initialize 'Images'
        _backgroundWidth = _size * Images.Background.Width;
    }
}
根据:

实例字段的变量初始值设定项不能引用正在创建的实例

这意味着你不能做这样的事情:

private int _backgroundWidth = this._size * this._something;

帮助我们在编写代码时包含代码(至少针对整数成员)。我看不出为什么它不起作用。有什么问题吗?会发生什么?你有错误吗?如果你想在你的
图像
课程中使用它,我建议你注意,因为所有的东西都是静态的。要使用非静态属性,首先必须创建一个新对象。(我指的是)关于更新:到底是什么问题?尽量更具描述性,否则我们无法帮助您。如果
Images.Background.Width
的类型为
int
,则应该可以。什么是编译器错误?@RyanFoy我已经用一个例子和一个解释更新了我的答案。
private int _backgroundWidth = this._size * this._something;