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代码>然后有一个公共intbackgroundWidth=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;