什么是表单构造函数和form_Load方法之间的区别?
什么是你把物品放在一个与另一个相比的过程?
假设参数类型都相同,那么方法的参数数量是否有经验法则?我只是想知道我应该在哪里绘制线和我的替代品(即接口,数组等).
我今天遇到了一个问题,一位朋友建议我使用全局静态实例或更优雅地使用单例模式.我花了几个小时阅读关于单身的事情,但有些事情仍然让我感到厌烦.
背景:我想要完成的是创建API的实例并在我的所有类中使用这个实例(而不是建立新的连接等).
似乎有大约100种创建单例的方法,但在yoda的帮助下,我发现了一些线程安全的例子...还给出了以下代码:
public sealed class Singleton
{
public static Singleton Instance { get; private set; }
private Singleton()
{
APIClass api = new APIClass(); //Can this be done?
}
static Singleton() { Instance = new Singleton(); }
}
Run Code Online (Sandbox Code Playgroud)
如何/在哪里实例化这个新类以及如何从一个单独的类中调用它?
编辑:我意识到可以用类似的东西调用Singleton类
Singleton obj1 = Singleton.Instance();
Run Code Online (Sandbox Code Playgroud)
但是我能够访问API类中的方法(即obj1.Start)吗?(不是我需要,只是问)
编辑#2:我可能在检查答案时有点过早,但我确实有一件小问题仍在引起我的问题.API发布很好,遗憾的是我能够启动两个实例吗?
新规范
public sealed class SingletonAPI
{
public static SingletonAPI Instance { get; private set; }
private SingletonAPI() {}
static SingletonAPI() { Instance = new SingletonAPI(); }
// API method:
public void …Run Code Online (Sandbox Code Playgroud) 我使用.NET框架1.1,我希望有人可以帮我实现动态的对象数组?
我希望使用的对象的淡化示例如下.
Class CarObj
{
public string CarName;
public string CarYear;
}
Run Code Online (Sandbox Code Playgroud)
我应该使用ArrayList还是你认为制作一个CarList类来实现IList接口会更好?一个人对另一个人有性能上的好处吗?
我有一个现有的 XML 文件,我想在不更改格式的情况下附加该文件。现有文件如下所示:
<Clients>
<User username="farstucker">
<UserID>1</UserID>
<DOB />
<FirstName>Steve</FirstName>
<LastName>Lawrence</LastName>
<Location>NYC</Location>
</User>
</Clients>
Run Code Online (Sandbox Code Playgroud)
如何使用此格式添加另一个用户?我现有的代码是:
string fileLocation = "clients.xml";
XmlTextWriter writer;
if (!File.Exists(fileLocation))
{
writer = new XmlTextWriter(fileLocation, null);
writer.WriteStartDocument();
// Write the Root Element
writer.WriteStartElement("Clients");
// End Element and Close
writer.WriteEndElement();
writer.Close();
}
// Append new data here
Run Code Online (Sandbox Code Playgroud)
我想过使用 XmlDocument Fragment 来附加数据,但我不确定我是否可以在不弄乱文件的情况下保持现有格式(和空标签)。
非常感谢您可以提供的任何建议。
编辑我更改了代码以读取原始 XML,但文件不断被覆盖。
迭代虽然数组不是问题,但是如果我只想在调用方法时才增加?
我甚至不确定这是否会起作用,但有更简单的方法可以做到这一点
int counter;
string[] myArray = {"foo", "bar", "something", "else", "here"};
private string GetNext()
{
string myValue = string.Empty;
if (counter < myArray.Length) {
myValue = myArray [counter];
} else {
counter = 0;
}
counter++;
return myValue;
}
Run Code Online (Sandbox Code Playgroud) 就在我认为我开始理解基础知识的时候,我找到了一些让我回到现实的东西.在这种情况下,键入引用.
我找到了一个类似的例子:
class Worker
{
Boss boss;
public void Advise(Boss pBoss)
{
this.boss = pBoss;
}
Run Code Online (Sandbox Code Playgroud)
如果Boss类中的方法不是静态的而不是实例化的,那么如何引用它们?
我想我真正的问题是什么区别:
Boss boss;
Run Code Online (Sandbox Code Playgroud)
和
Boss boss = new Boss();
Run Code Online (Sandbox Code Playgroud) 考虑以下代码,可以使用循环为每个唯一的机器添加公共服务.
internal static List<MyClass> Mc = new List<MyClass>();
public class MyClass : OtherClass
{
public string Machine { get; set; }
public string Service { get; set; }
public void AddProcessDetails()
{
Mc.Add(new MyClass { Machine = server1, Service = "notepad" });
Mc.Add(new MyClass { Machine = server2, Service = "notepad" });
Mc.Add(new MyClass { Machine = server2, Service = "foo" });
}
Run Code Online (Sandbox Code Playgroud)
因此,如果有一个名为"bar"的公共服务,我如何循环遍历此列表,获取每个唯一的计算机名称,然后将该计算机名称和服务添加到列表中?
c# ×8
loops ×2
arraylist ×1
arrays ×1
c#-4.0 ×1
collections ×1
constructor ×1
generics ×1
ilist ×1
onload ×1
parameters ×1
singleton ×1
winforms ×1
xml ×1