我正在将一个项目从 Java 转换为 C#。我试图搜索这个,但我遇到的只是关于枚举的问题。有一个 Hashtable htPlaylist,循环使用 Enumeration 遍历键。我如何将此代码转换为 C#,但使用字典而不是哈希表?
// My C# Dictionary, formerly a Java Hashtable.
Dictionary<int, SongInfo> htPlaylist = MySongs.getSongs();
// Original Java code trying to convert to C# using a Dictionary.
for(Enumeration<Integer> e = htPlaylist.keys(); e.hasMoreElements();
{
// What would nextElement() be in a Dictonary?
SongInfo popularSongs = htPlaylist.get(e.nextElement());
}
Run Code Online (Sandbox Code Playgroud) 每当我与有经验的程序员交谈时,他们都会谈论由于调试或安全漏洞导致全局变量是一种不好的做法.我有一个简单的字符串列表,我想从一个文本文件加载,并访问我的表单中的不同方法.以前,我只是在我的表单类的顶部初始化所述变量,并在方法中使用它.我总是尽力减少这种做法,只在我真正需要它们时才初始化这些变量.这样做是不好的做法,还是更有经验的程序员也这样做?是否有标准的设计模式方法,因此您不必在表单顶部使用"全局变量"?
有谁知道为什么Microsoft放弃了工具栏上的ImageList属性?手动分配图像列表的最佳位置在哪里?如果我唯一可以添加或更改的图像来自本地资源或项目资源文件,我是否能够在设计期间显示图像?在设计期间,如何获取特定的图像列表索引以显示在工具栏中的按钮上。
我认为索引器的意思是,如果你有某个类的数组或列表类似于winform,你可以通过输入myObject [index]来获取对象的索引.SomeMethod();
为什么C#中的索引器的示例需要一个类具有数组的私有字段,然后公共索引器属性从该私有数组获取索引?仅仅持有一个告诉它索引是什么的整数不是更好吗?有什么不同?
我有两个Java类,我正在尝试转换为C#.一个是名为RemoteButton的抽象类,另一个是从TVRemoteMute派生的.我能够转换抽象RemoteButton类中的大多数成员.一个成员是抽象的buttonNinePressed(),在TVRemoteMute中实现,另一个是在基类中实现的虚拟成员buttonFivePressed().我的问题是TVRemoteMute类的构造函数.它突出显示了两个单词,构造函数名称和方法中的单词super.构造函数名称错误读取:"没有给出的参数对应于'RemoteButton.RemoteButton(EntertainmentDevice)'所需的正式参数'newDevice'."super"关键字错误读取该名称在当前上下文中不存在.我如何从Java到C#实现这个构造函数,所以我的类可以处理构造函数?
public abstract class RemoteButton
{
private EntertainmentDevice theDevice;
public RemoteButton(EntertainmentDevice newDevice)
{
theDevice = newDevice;
}
public virtual void buttonFivePressed()
{
theDevice.buttonFivePressed();
}
public abstract void buttonNinePressed();
}
public class TVRemoteMute : RemoteButton
{
public TVRemoteMute(EntertainmentDevice newDevice)
{
super(newDevice);
}
public override void buttonNinePressed()
{
Console.WriteLine("TV was Muted");
}
}
Run Code Online (Sandbox Code Playgroud)