我知道当NullReferenceException被抛出时,错误消息指出:
你调用的对象是空的.
我意识到当我尝试取消引用null对象引用时会抛出此消息.
错误消息暗示NullReferenceException除了对象引用之外可能还有一个原因null(可能是坏内存地址或类似内容).是这样的吗?
编辑:我更关心NullReferenceException可能抛出的原因而不是错误消息的措辞.错误消息的措辞正是提示问题的原因.
我正在编写一个二十一点程序,但我的问题是创建一个具有其他对象列表的对象时的解决方案,但是当我首先创建对象时,列表为空.我想这就是我收到这个错误的原因.下面是我的代码,我将播放器初始化为在播放器的构造函数中有一个手的实例,但是当我调用方法playerHand.Hit(card)时,我得到"对象引用未设置为对象的实例"错误消息;
public class Player
{
private string name;
public Hand playerHand;
public Player()
{ }
public Player(string name)
{
this.Name = name;
this.playerHand = new Hand();
}
public string Name
{
get { return name; }
set { name = value; }
}
public void TakeCard(Card card)
{ playerHand.Hit(card); }`
Run Code Online (Sandbox Code Playgroud)
`
public class Hand
{
public List<Card> hand;
public Hand()
{
hand = new List<Card>();
}
public int handValue;`
public void Hit(Card card)
{
hand.Add(card);
}
public int HandValue()
{ …Run Code Online (Sandbox Code Playgroud) 我有一个javascript对象 var flower_1; var flower_2;
我的问题是我是否有另一个变量,例如String var Name;
比如说: Name = "flower_1";
如何将Name变量更改为对象"flower_1"
在字符串clientNameStr上使用"替换"会导致"找不到对象引用"错误.
// Get client name
clientName = currentUser.GetValue("ClientName");
string clientNameStr = (string)clientName;
string clientURLStr = string.Empty;
clientURLStr = clientNameStr.Replace(' ', '-');
// clientURLStr = "ST9215-Stanic-Parts-Ltd";
Run Code Online (Sandbox Code Playgroud)
如果我在注释掉的字符串中替换(并注释掉现有的字符串)它工作正常,所以它必须与替换函数有关,但是什么?尝试使用"和'引号,同样的结果.
任何帮助将不胜感激.
谢谢,奥利.