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