首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

threemax为什么是并非所有都有返回值?解决方法

2012-05-13 
threemax为什么是并非所有都有返回值?namespace experience312{public partial class Form1 : Form{public

threemax为什么是并非所有都有返回值?
namespace experience312
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }

  int k = 0;
  class student
  {
  public string ne; double nr; public double em; public double mm; public double cm;
  public double Nr { get { return nr; } set { if(value<0) nr=0;else nr=value;} }
  public student(string nn, double n, double e, double m, double c) { this.ne = nn; this.nr = n; em = e; mm = m; cm = c; }
  public double answer() { return em + mm + cm; }
  }

  class studentlist
  {
  private student[] Tom = new student[5];

  public student this[int index]
  {
  get
  {
  if (index < 0 || index >= 5)
  return Tom[0];
  else return Tom[index];
  }
  set
  {
  if (index < 0 || index >= 5)
  Tom[0] = value;
  else
  Tom[index] = value;
  }
  }

  public string threeMax(int u, student[] number)
  {

  double t=0;
  for (int z = 0; z <= u; z++)
  {
  for (int g = 1; g <= u; g++)
  {
  if (number[z].cm <= number[g].cm)
  {
  t = number[g].cm;
  number[z].cm = number[u].cm;
  number[u].cm = t;
  return number[0].ne;
  }
  else { return number[0].ne; }
  }
  }


  }


  }
   
  studentlist Internet = new studentlist();
  private void button1_Click(object sender, EventArgs e)
  {
  string a = Convert.ToString(textBox1.Text);
  double b = Convert.ToDouble(textBox3.Text);
  double c = Convert.ToDouble(textBox3.Text);
  double d = Convert.ToDouble(textBox4.Text);
  double f = Convert.ToDouble(textBox5.Text);
   
  Internet[k] = new student(a, b, c, d,f);
  k++;
  label9.Text = "已经添加了" + k + "个学生信息!";
   
  }

  private void button2_Click(object sender, EventArgs e)
  {
  string g=Convert.ToString(textBox6.Text);
  for (int i = 0; i <= k-1; i++) { 
  if (Internet[i].ne ==g) 

  {label1.Text = Convert.ToString(Internet[i].answer());}
   
  }
  }

   

   


[解决办法]
你应该考虑到如果u=0,循环不起来,那么你是没有返回值的,改成如下试试

C# code
public string threeMax(int u, student[] number)        {            double t = 0;            for (int z = 0; z <= u; z++)            {                for (int g = 1; g <= u; g++)                {                    if (number[z].cm <= number[g].cm)                    {                        t = number[g].cm;                        number[z].cm = number[u].cm;                        number[u].cm = t;                        return number[0].ne;                    }                    else                    {                        return number[0].ne;                    }                }            }            return string.Empty;        } 

热点排行