c# - C#中setter方法中的随机方法
问题描述
我是 C# 新手。我试图弄清楚如何在 setter 中使用 random 方法。这就是我的代码现在的样子:
public class star_wars_figures
{
private string charactor;
private int bounty;
public star_wars_figures(string charactor)
{
Charactor = charactor; }
public string Charactor
{
get
{
return charactor.ToUpper();
}
set
{
if (value == "Han Solo" || value == "Leia")
{
charactor = value;
}
else charactor = "INCORRECT CHARACTOR!!!!";
}
}
public int Bounty
{
get
{
return bounty;
}
set
{
Random rnd = new Random();
bounty = rnd.Next(1, 10);
bounty = value;
}
}
}
在我的主要实例中,我使用以下内容:
star_wars_figures sw1 = new star_wars_figures("Han Solo");
Console.WriteLine($"Character is: {sw1.Charactor}");
Console.WriteLine($"Money: {sw1.Bounty}");
我正在尝试在 bounty 属性的 setter 方法中生成一个随机 int 数。它只是返回 0。
我在这里错过了什么?
解决方案
“值”(您的最后一个分配)是调用设置器时收到的值。
目前“赏金”设置了两次:首先是您的随机生成器结果,然后是“值”。因此,第一个值集丢失并且无法在任何地方使用。
您可以删除“赏金=价值;” 让它工作。尽管如此,属性设置器并不是做你想做的事的正确地方,我认为你对如何使用属性和支持字段有根本的误解。
推荐阅读
- mathematical-optimization - 如何制定线性规划的初始投资?
- identityserver4 - IdentityServer4 请求太长
- node.js - 节点持久化:initSync 不是函数
- java - eclipse google cloud from appengine sdk迁移问题
- specman - Specman e:有没有办法知道枚举类型中有多少个值?
- java - JavaFX 媒体播放器不播放视频
- beautifulsoup - BeautifulSoup 从锚标记内的脚本中获取文本
- cocoa - 在可可应用程序的不同视图控制器上启用或禁用菜单项?
- java - com.example.daoImpl.FileDaoImpl 中的字段 entityManagerFactory 需要找不到类型为“javax.persistence.EntityManagerFactory”的 bean
- ios - 需要检查我的数组中的特定键值