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实例。