2

假设我有一个名为 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
}
4

3 回答 3

4

您需要创建songPlayer一个字段 - 它是一个局部变量,仅对当前声明它的构造函数可见。

private System.Media.SoundPlayer songPlayer;

public class1(string songPath)
{
    songPlayer = new System.Media.SoundPlayer(songPath);
}
于 2012-11-29T14:43:00.370 回答
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 情况,请使用私有变量作为属性

于 2012-11-29T14:44:47.093 回答
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;
    }
}
于 2012-11-29T14:46:10.430 回答