小编Rya*_*yan的帖子

表单构造函数与Form_Load

什么是表单构造函数和form_Load方法之间的区别?

什么是你把物品放在一个与另一个相比的过程?

c# constructor onload winforms

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

限制每种方法的参数数量?

假设参数类型都相同,那么方法的参数数量是否有经验法则?我只是想知道我应该在哪里绘制线和我的替代品(即接口,数组等).

c# parameters design-patterns

13
推荐指数
2
解决办法
4526
查看次数

使用单例而不是全局静态实例

我今天遇到了一个问题,一位朋友建议我使用全局静态实例或更优雅地使用单例模式.我花了几个小时阅读关于单身的事情,但有些事情仍然让我感到厌烦.

背景:我想要完成的是创建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)

c# singleton

8
推荐指数
2
解决办法
9072
查看次数

我应该使用ArrayList还是IList

我使用.NET框架1.1,我希望有人可以帮我实现动态的对象数组?

我希望使用的对象的淡化示例如下.

Class CarObj
{
   public string CarName;
   public string CarYear;
}
Run Code Online (Sandbox Code Playgroud)

我应该使用ArrayList还是你认为制作一个CarList类来实现IList接口会更好?一个人对另一个人有性能上的好处吗?

c# ilist arraylist

6
推荐指数
1
解决办法
1542
查看次数

附加现有的 XML 文件

我有一个现有的 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,但文件不断被覆盖。

c# xml

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

迭代一个数组

迭代虽然数组不是问题,但是如果我只想在调用方法时才增加?

我甚至不确定这是否会起作用,但有更简单的方法可以做到这一点

    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)

c# arrays loops

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

实例化与类型化引用

就在我认为我开始理解基础知识的时候,我找到了一些让我回到现实的东西.在这种情况下,键入引用.

我找到了一个类似的例子:

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)

c# instantiation

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

使用循环从列表中获取唯一值然后添加另一个值

考虑以下代码,可以使用循环为每个唯一的机器添加公共服务.

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# generics collections loops c#-4.0

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