简单的构造函数问题

时间:2012-11-29 14:41:11

标签: c#

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

3 个答案:

答案 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;
    }
}