小编JSh*_*ell的帖子

{get; set;}和访问修饰符

我刚刚开始学习c#,而且我对getter和setter的简写有点挣扎.

据我了解,下面的两种方法是等效的.它是否正确?

//Method 1
public string name { get; set; }

//Method 2
private string name
public string getName() { return name;}
public string setName(string newName) { this.name = newName; }
Run Code Online (Sandbox Code Playgroud)

其次,如果我们想要在getter/setter和实例变量上使用不同的访问修饰符,这是如何工作的.以下代码错误,告诉我访问者必须比属性更具限制性,并且我无法为烦恼访问器指定修饰符.有人可以澄清一下吗?

private int maxTime { public get; public set; }
Run Code Online (Sandbox Code Playgroud)

编辑:澄清一下,我没有具体的目标,只有理解.我不明白这个简写符号是做什么的.在其他语言中,我有私有实例变量,并使用公共getter和setter来管理这些实例变量.如果我自己写出方法,它就允许这样做,但不能用这个简写符号.为什么是这样?

编辑2:检查我的理解的最后一个问题.下面的两个代码片段都使用属性来管理maxTime变量.两者之间的唯一区别是风格.它是否正确?

private int maxTime;
public int MaxTime{ get; set; }
Run Code Online (Sandbox Code Playgroud)

VS

private int maxTime;

public int MaxTime
{
    get { return maxTime; }
    set { maxTime= value; }
}
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
2
解决办法
5606
查看次数

事件驱动编程

我一直在阅读这篇MSDN文章这个问题,试图理解.NET中的事件.不幸的是,它没有点击我,我遇到了很多麻烦.我正在尝试将这项技术整合到我的项目中,但收效甚微.

基本上,我有这个类会读数字.每当遇到一个新号码时,我希望它触发一个名为numberChanged的事件.

所以,我设置了我的活动public event EventHandler numberChanged;.稍后,当我遇到一个与前一个数字不同的数字时,我会触发它.

if(currentNumber != previousNumber){
     if(numberChanged != null){
          numberChanged(this, new EventArgs());
     }
}
Run Code Online (Sandbox Code Playgroud)

但后来我遇到了麻烦'subcibing'这个事件.如果我这样做numberChanged += [something to do here]错误,说numberChanged是一个事件而不是一个类型.

我的解释是否足够明确,可以提供一些建议?非常感谢.

c#

4
推荐指数
1
解决办法
6522
查看次数

将tkinter的intvar添加到整数

我在添加从Entry框中获取的值并将其添加到现有数字时遇到了一些麻烦.在这种情况下,我希望将"更改速度"框的值添加到机器人当前速度.运行时,我的代码会产生错误:

TypeError:+ =:'int'和'IntVar'的不支持的操作数类型.

下面是生成输入框的代码:

change_speed_entry = ttk.Entry(main_frame, width=5)  # Entry box for linear speed
change_speed_entry.grid()
data = tkinter.IntVar()
change_speed_entry['textvariable'] = data
Run Code Online (Sandbox Code Playgroud)

接下来是我试图操纵结果的地方.这是一个类中的方法.该类的所有其他方法都能正常工作:

def changeSpeed(self, delta_speed):
    self.speed += delta_speed
Run Code Online (Sandbox Code Playgroud)

python user-interface tk-toolkit tkinter

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×2

python ×1

tk-toolkit ×1

tkinter ×1

user-interface ×1