假设我有这个名为class1的类,class1包含一个默认构造函数,另一个包含一个参数(比如说一个字符串)。在构造函数内部我设置了一个变量,我们称之为“string var”。我希望var从创建该对象时传递给构造函数的字符串中获取值,但我希望能够在构造函数范围之外使用var,这可能吗?因为构造函数不会返回值等等。
这里要澄清的是我想要做的代码示例:
class class1
{
public class1(string songPath)
{
System.Media.SoundPlayer songPlayer = new System.Media.SoundPlayer(songPath);
}
//here I want to use my songPlayer I created with the passed string as songPath
}
答案 0 :(得分:4)
你需要让songPlayer
成为一个字段 - 它是一个只对目前声明的构造函数可见的局部变量。
private System.Media.SoundPlayer songPlayer;
public class1(string songPath)
{
songPlayer = new System.Media.SoundPlayer(songPath);
}
答案 1 :(得分:1)
只需创建这样的属性
//System.Media.SoundPlayer _songPlayer ;
public System.Media.SoundPlayer songPlayer
{
//if you have nay logic to handle ull
//get{ if(_songPlayer != null) return _songPlayer; else null; } or just
get;
}
public class1(string songPath)
{
SongPlayer = new System.Media.SoundPlayer(songPath);
//_songPlayer = new System.Media.SoundPlayer(songPath);
}
注意:如果您想在课堂外使用此成员,则会有所帮助,否则最好使用@Oded解决方案..
如果要处理null情况,请使用私有vriable属性
答案 2 :(得分:1)
您的另一个选择可能是静态类和方法
public static class1(string songPath)
{
public static System.Media.SoundPlayer play(string songPath)
{
System.Media.SoundPlayer songPlayer = new System.Media.SoundPlayer(songPath);
// play here ?
// or return to play
return songPLayer;
}
}