c#类中的Case切换方法

Jt2*_*uan 0 c# methods class case switch-statement

试图让一个方法在一个类中,我在设置它时遇到了麻烦.尝试设置appstatus保存字符串的字符串方法,appstatus但首先必须将值设置为它.我想最终appstatus从SQL查询中设置值,然后在我的列表中访问它们

public class SampleData
{
public SampleData()
{
}
public string name { get; set; }
public string phoneNbr { get; set; }
public string appstatus 
 { 
 get
 {
   return appstatus;
 }
  set
  {
    switch (appstatus)
    {
        case "A":
            appstatus= "Yes";
            break;
        case "B":
            appstatus= "No";
            break;
        case "E":
            appstatus= "Need More Info";
            break;
        default:
            appstatus= ("Unknown");
            break;
    }
 }
}

...using (SqlDataReader read = cmd.ExecuteReader())
            {
                while (read.Read())
                {
                    try
                    {
                        SampleData d1 = new SampleData();
                        d1.name = Convert.ToString(read["..."]);
                        d1.phoneNbr = Convert.ToString(read["..."]);                            
                        d1.appstatus = (Convert.ToString(read["..."]).Trim());

                        list.Add(d1);
                    }
            }
     }
Run Code Online (Sandbox Code Playgroud)

cga*_*ian 5

您的switch陈述需要使用value而不是appstatus.因为appstatus它不是自动实现的属性,所以还需要将值存储在私有成员中并更改get为返回该值.

 private string _appstatus;
 public string appstatus 
 { 
 get
 {
   return _appstatus;
 }
  set
  {
    switch (value)
    {
        case "A":
            _appstatus= "Yes";
            break;
        case "B":
            _appstatus= "No";
            break;
        case "E":
            _appstatus= "Need More Info";
            break;
        default:
            _appstatus= "Unknown";
            break;
    }
 }
Run Code Online (Sandbox Code Playgroud)