Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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# - Fatal编程技术网

C# 从构造函数调用值

C# 从构造函数调用值,c#,C#,有人能帮我得到字符串x的值并把它放到另一个类中吗?我想在另一个类中使用字符串x的值 namespace WindowsFormsApp6 { public partial class Titles : Form { public Titles(string strToDisplay) { InitializeComponent(); string x = strToDisplay; }

有人能帮我得到字符串x的值并把它放到另一个类中吗?我想在另一个类中使用字符串x的值

namespace WindowsFormsApp6
{
    public partial class Titles : Form
    {
        public Titles(string strToDisplay)
        {
            InitializeComponent();
            string x = strToDisplay;
        }

        private void titleList_SelectedIndexChanged_1(object sender, EventArgs e)
        {
           // USE X HERE
        }
    }
}

您需要将参数存储在类字段中:

class Titles
{
    private string strToDisplayField;
    public Titles(string strToDisplay)
    {
        InitializeComponent();
        strToDisplayField = strToDisplay;
    }


    private void titleList_SelectedIndexChanged(object sender, EventArgs e)
    {
        var local = strToDisplayField; // Is accessible here
    }
}

无法访问该方法之外的方法作用域变量。您需要在类级别声明该变量并重用它

private string x;
public Titles(string strToDisplay)
    {
        InitializeComponent();
        x = strToDisplay;
    }


    private void titleList_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Now you can access here
    }

如果要在类中访问,请将x设为字段

如果要在类之外访问,请将x设置为公共属性

public class Titles
{
    public string X { get; set; }
    public Titles(string strToDisplay)
    {
        InitializeComponent();
        this.X = strToDisplay;
    }
}

public class AnotherClass
{
    private void titleList_SelectedIndexChanged(object sender, EventArgs e)
    {
        var t = new Titles("Some text");
        var newX = t.X;

    }
}

生成一个全局变量:私有字符串X;在构造函数put:X=strotdisplay中,我认为您只有1个类和2个方法。因此,将其设置为实例字段或属性。明白为什么当我尝试将局部变量放入消息框时,它不会被看到吗?@aaa它应该可以工作,在运行时放置断点并检查值。@aaa本教程可能会有所帮助:我尝试了您的第一个建议,但当我尝试将变量x放入消息框时,它不会弹出/显示?@aaa您需要共享更多代码。你想做什么以及你是如何做到的?阅读C/.Net中的变量作用域,你能再帮我一次吗?我试图从RecipeTileName中选择recipeName,其中IngreditName如“{listBox1.Items}%”,它将在dr.read{titleList.Items.Adddr[recipeName].ToString;}时读取。我的问题是,它读取的内容不会添加到我的列表框中。在我的列表框1中,我有一组项目,如鸡蛋、扇贝、鸡肉、油、,茄子和我想选择所有的食谱名称,其中有鸡蛋、扇贝、鸡肉、油、茄子。我遗漏了什么部分?不知道你们桌子的结构,我不能给出准确的建议。但是,根据您的评论,您的查询返回0项,因此您的阅读器为空。您需要对此进行动态查询:首先使用类似listbox的字符串中的每一项生成like子句,其中likeclause=WHERE 1=1;forint i=0;ibtw wherelikecause=WHERE 1=1;,这个语法字符串的用途是什么?我有一个错误,说检查与您的mysql服务器版本对应的手册,以便在“%Egg Scallop”附近使用正确的语法。。。在第1行。顺便说一句,我有一个表CREATE table recipitels recipeID INT NOT NULL主键自动递增,recipeName VARCHAR200 NOT NULL,IngreditName VARCHAR900 NOT NULL,category VARCHAR100 NOT NULL;我尝试在我的命令中添加\n new MySqlCommand$SELECT recipeName+\n+from recipetites{whereLikeClause},con;但还是有同样的错误
public class Titles
{
    public string X { get; set; }
    public Titles(string strToDisplay)
    {
        InitializeComponent();
        this.X = strToDisplay;
    }
}

public class AnotherClass
{
    private void titleList_SelectedIndexChanged(object sender, EventArgs e)
    {
        var t = new Titles("Some text");
        var newX = t.X;

    }
}