Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改类';来自另一个类的属性_C#_.net - Fatal编程技术网

C# 更改类';来自另一个类的属性

C# 更改类';来自另一个类的属性,c#,.net,C#,.net,我有一个具有属性的类: public class TaskConfiguration { public string Task_Name { get; set; } public string task_id { get; set; } } 在代码的某个地方,我有一个方法可以在程序执行的早期设置类的属性: public class TaskManagingProcess { public void In

我有一个具有属性的类:

public class TaskConfiguration 
{
    public string Task_Name
    {
        get; set;
    }

    public string task_id
    {
        get; set;
    }
}
在代码的某个地方,我有一个方法可以在程序执行的早期设置类的属性:

public class TaskManagingProcess
{
    public void InsertTaskProperties()
    {
        TaskConfiguration tc = new TaskConfiguration();
        tc.Task_Name = "Sample Task";
        tc.task_id = "1";
    }
}
在稍后的执行中,在另一个类中,我想修改
TaskConfiguration
类的属性,但我不确定如何修改。如果我使用以下命令,它将不起作用,因为它会创建
TaskConfiguration
类的新实例

TaskManagingProcess tmp = new TaskManagingProcess;
tmp.InsertTaskProperties();

那么我该怎么做呢?

您想传递对象:

public void InsertTaskProperties(TaskConfiguration config) {
    config.Task_Name = "Sample Task";
    config.task_id = "1";
}
然后:


(我对你的代码做了一个非常大的假设。但这应该给你一个基本的想法)

你想传递对象:

public void InsertTaskProperties(TaskConfiguration config) {
    config.Task_Name = "Sample Task";
    config.task_id = "1";
}
然后:


(我对你的代码做了一个非常大的假设……但这应该给你一个基本的想法)

在我看来,TaskManagingProcess是一个代理类,这就是为什么我推荐如下内容:

 public class TaskConfiguration 
    {
        public string Task_Name
        {
            get;
            set;
        }

        public string task_id
        {
            get;
            set;
        }
    }


public class TaskManagingProcess
{
    private TaskConfiguration taskConfiguration;

    public TaskManagingProcess(TaskConfiguration taskConfiguration)
    {
        this.taskConfiguration = taskConfiguration;
    }

    public void InsertTaskProperties(string taskId, string name)
    {
        taskConfiguration.task_id = taskId;
        taskConfiguration.Task_Name = name;         
    }
}
因此,最后您可以这样做(见下文),并轻松添加代码来处理TaskConfiguration对象的访问:

TaskConfiguration taskConfiguration = new TaskConfiguration() { task_id = "1", Task_Name = "Sample Task" };
TaskManagingProcess taskManaginProcess = new TaskManagingProcess(taskConfiguration);

taskManaginProcess.InsertTaskProperties("2", "Sample Task 2");

在我看来,TaskManagingProcess是一个代理类,这就是为什么我推荐这样的类:

 public class TaskConfiguration 
    {
        public string Task_Name
        {
            get;
            set;
        }

        public string task_id
        {
            get;
            set;
        }
    }


public class TaskManagingProcess
{
    private TaskConfiguration taskConfiguration;

    public TaskManagingProcess(TaskConfiguration taskConfiguration)
    {
        this.taskConfiguration = taskConfiguration;
    }

    public void InsertTaskProperties(string taskId, string name)
    {
        taskConfiguration.task_id = taskId;
        taskConfiguration.Task_Name = name;         
    }
}
因此,最后您可以这样做(见下文),并轻松添加代码来处理TaskConfiguration对象的访问:

TaskConfiguration taskConfiguration = new TaskConfiguration() { task_id = "1", Task_Name = "Sample Task" };
TaskManagingProcess taskManaginProcess = new TaskManagingProcess(taskConfiguration);

taskManaginProcess.InsertTaskProperties("2", "Sample Task 2");

在另一个类中是否有TaskConfiguration的实例?也许您应该向InsertTaskProperties方法添加参数?能否将对
TaskConfiguration
实例的引用传递给另一个类?只要
tc
方法完成,您的
tc
实例就会“死亡”(超出范围并被垃圾收集)。你需要读一读关于@HighCore的书是的,我意识到了。如果我将tc实例放在类级别,那么tc实例将被正确设置。但我无法修改原始tc实例。在另一个类中是否有TaskConfiguration的实例?也许您应该向InsertTaskProperties方法添加参数?能否将对
TaskConfiguration
实例的引用传递给另一个类?只要
tc
方法完成,您的
tc
实例就会“死亡”(超出范围并被垃圾收集)。你需要读一读关于@HighCore的书是的,我意识到了。如果我将tc实例放在类级别,那么tc实例将被正确设置。但我无法修改原始tc实例。