在 C# 中的多个文件中访问/创建一个类的对象
本文关键字:一个 对象 访问 文件 创建 | 更新日期: 2023-09-27 18:34:22
我有几个类,让我们说,
public class A
{
public string Date { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Link { get; set; }
public string Document { get; set; }
}
public class B
{
public string Fixes { get; set; }
public string Date { get; set; }
public string Link { get; set; }
public string Document { get; set; }
}
我在两个文件(Webforms)中使用这两个类,如下所示。
var allVars= (from p in doc.Elements("Patches").Elements("Patch").Elements("Fix")
select new B
{
Fixes = p.Value,
Date = (p.Parent.Attribute("date") == null) ? "NA" : p.Parent.Attribute("date").Value,
Link = (p.Attribute("Ticket") == null) ? "" : p.Attribute("Ticket").Value,
Document = (p.Attribute("Document") != null) ? p.Attribute("Document").Value : ""
}
);
var allVariables= (from f in doc.Elements("Features").Elements("Feature")
select new A
{
Date=(f.Parent.Attribute("date") == null) ? "NA" : f.Parent.Attribute("date").Value,
Name = f.Attribute("name").Value,
Description = f.Value,
Link = f.Attribute("Ticket").Value,
Document = (f.Attribute("Document") != null) ? f.Attribute("Document").Value : null
});
因此,在我的应用程序中的多个网络表单(分部类)中,这些分支是这样使用的。而不是在每个类中单独定义它们。我希望他们定义一次并在任何文件中使用它们,就像那样。我确信 C# 会有一些这样的机制,但我不记得功能名称以及如何重用它。
有人可以让我知道这是怎么可能的。
在这两个类中将其定义为静态函数:
public class A
{
public string Date { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Link { get; set; }
public string Document { get; set; }
public static dynamic Get A()
{
var allVariables= (from f in doc.Elements("Features").Elements("Feature")
select new A
{
Date=(f.Parent.Attribute("date") == null) ? "NA" : f.Parent.Attribute("date").Value,
Name = f.Attribute("name").Value,
Description = f.Value,
Link = f.Attribute("Ticket").Value,
Document = (f.Attribute("Document") != null) ? f.Attribute("Document").Value : null
});
return allVariables;
}
}
public class B
{
public string Fixes { get; set; }
public string Date { get; set; }
public string Link { get; set; }ynamig
public string Document { get; set; }
public static dynamic getB()
{
var allVars= (from p in doc.Elements("Patches").Elements("Patch").Elements("Fix")
select new B
{
Fixes = p.Value,
Date = (p.Parent.Attribute("date") == null) ? "NA" : p.Parent.Attribute("date").Value,
Link = (p.Attribute("Ticket") == null) ? "" : p.Attribute("Ticket").Value,
Document = (p.Attribute("Document") != null) ? p.Attribute("Document").Value : ""
}
);
return allVars;
}
}
然后,您可以从页面调用这些函数,如下所示:
A.getA()
B.getB()