C# 如何从正在创建/调用构造函数的类中提取构造函数的参数C

C# 如何从正在创建/调用构造函数的类中提取构造函数的参数C,c#,wpf,C#,Wpf,我通过在类的构造函数中传递一些参数来调用类Usercontrol。我还将类实例保存在一个列表中,以执行一些自定义操作 // In a Main Class private List<Point> _pList= new List<Point>(); // Point is a UserControl private void function(header, tx, rx) { Point pt= new Point(header, tx, rx); // all p

我通过在类的构造函数中传递一些参数来调用类Usercontrol。我还将类实例保存在一个列表中,以执行一些自定义操作

// In a Main Class
private List<Point> _pList= new List<Point>(); // Point is a UserControl

private void function(header, tx, rx) 
{
Point pt= new Point(header, tx, rx); // all parameters are string and values are dynamic for each class instance

// some operations

_pList.add(pt);
}
}


请指导我如何做到这一点。。谢谢你

虽然这表明你正在做一些可疑的事情。。。作为最后手段,您可以将它们存储在可以访问它们的地方

e、 g:

并在您的列表中使用它:

//first create the container:
var pc = new PointContainer() { /* initialize variables */ };
//and put it in your list
_pList.Add(pc);
//your will contain the combination of points and parameters
通常,您可以访问通过对象本身传递的变量:

var point = new Point(header);
var header = point.Header; //so in your case this public property seems missing

我想你的观点看起来-

public class Point
{
   public string Header{get;set;}
   public string Tx {get;set;}
   public string Rx  {get;set;}

   Public Point(string header,string tx,string rx)
   {
       Header=header;
       Tx=tx;
       Rx=rx;
   }
}
创建对象并将其添加到列表中的代码保持不变

从伪代码中,将此更新为-

foreach(var pt in _pList)
{
string header= "something";
string tx = "tx1";
string rx = "rx1";

if(pt.Header==header && pt.Tx==tx && pt.Rx==rx) // just a Pseudo-Code
{
// some tasks
}

以上是您可以对代码进行的简单更改。

Point类到底是什么?你能修改它吗?可以将这些值保存在构造函数中,并将其作为只读属性公开。如果不能,请将其保存在中。如果需要获取这些参数值,则它们应该是公共属性。可能是依赖属性。已经有一个东西叫点了。我建议您尝试为类使用唯一的名称。我猜你没有在这里使用mvvm-如果没有,那么如果你打算进行大量wpf开发,你应该看看模式。谢谢@Andy非常有用的建议..非常感谢。。两种方法都很好。。。但是我要另一个。。非常感谢您提供了有用的答案:
public class Point
{
   public string Header{get;set;}
   public string Tx {get;set;}
   public string Rx  {get;set;}

   Public Point(string header,string tx,string rx)
   {
       Header=header;
       Tx=tx;
       Rx=rx;
   }
}
foreach(var pt in _pList)
{
string header= "something";
string tx = "tx1";
string rx = "rx1";

if(pt.Header==header && pt.Tx==tx && pt.Rx==rx) // just a Pseudo-Code
{
// some tasks
}