gpt4 book ai didi

c#赋值后值仍然为null

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:14 25 4
gpt4 key购买 nike

我不知道我做错了什么,我正在处理一个现有的应用程序,我正在为此方法创建一个单元测试。

在测试方法上,我模拟了 View 并为项目分配了一个值

_fakeView.Setup(x => x.Bag.Amount).Returns((decimal)300.32);

(注意金额是字符串)

我正在将 View 对象传递给演示者并进行初始化

_presenter = new Presenter(_fakeView.Object);
_presenter.InitializeForm();

在现有的初始化代码中,有一行代码可以像这样重新分配值:

this._view.Amount = this._view.Bag.Amount.ToString();

当此行运行时,即使 this._view.Bag.Amount.ToString() 具有值,this._view.Amount 仍然为 null。

我什至试过直接设置它

this._view.Amount = "asdfgsdf"; but still null

请帮忙

最佳答案

仅仅因为你给某物赋值,并不意味着它不能是 null . this._view.Bag.Amount.ToString()必须返回 null。

这意味着 this._view为空,this._view.Bagnull , 或 this._view.Bag.Amountnull , 或 ToString()不知何故失败了。您必须检查这些值并找出 null 在哪里来自。

此外,如果 Amountstring你为什么使用 ToString()

编辑: Amount 的代码可能是是这样的:

// Get works as expected but set does literally nothing to change the backing field
private string amount = null;
public string Amount
{
get => amount;
set
{
// Do literally nothing
}
}

或者:

// Get will always return null, but set works as expected
prviate string amount;
public string Amount
{
get => null;
set => amount == value;
}

在这两个示例中,Amount将始终返回 null如果您只想使用 set/get .

有没有SetAmount(string amount)您可以调用的方法?

关于c#赋值后值仍然为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50458948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com