黑马程序员技术交流社区
标题:
为什么我按照苏老师的写法最后却显示未赋值?
[打印本页]
作者:
郭佳佳
时间:
2012-9-19 21:57
标题:
为什么我按照苏老师的写法最后却显示未赋值?
class Student
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
char sex;
public char Sex
{
get { return sex; }
set {
if (value == '女' || value == '男')
{
sex= value;
}
else
{
sex = '男';
}
}
}
int age;
public int Age
{
get { return age; }
set {
age = value >= 0 ? value : 0;
}
}
int chinese;
public int Chinese
{
get { return chinese; }
set {
age = value >= 0 ? value : 0;
}
}
int math;
public int Math
{
get { return math; }
set
{
age = value >= 0 ? value : 0;
}
}
int english;
public int English
{
get { return english; }
set {
age = value >= 0 ? value : 0;
}
}
public void SayHello()
{
Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}同学",name ,age ,sex );
}
public void ShowScore()
{
int sum = chinese + english + math;
int avg = sum / 3;
Console.WriteLine("我叫{0},我的总成绩为{1},平均成绩为{2}",name,sum,avg);
class Program
{
static void Main(string[] args)
{
Student zsStudengt = new Student();
zsStudengt.Name = "张三";
zsStudengt .Sex ='男';
zsStudengt.Age = 18;
zsStudengt.Chinese = 90;
zsStudengt.Math = 95;
zsStudengt.English = 80;
Student xlStudent = new Student();
xlStudent.Name = "小兰";
xlStudent.Sex = '女';
xlStudent.Age = 16;
xlStudent.Chinese = 95;
xlStudent.Math = 85;
xlStudent.English = 100;
Console.WriteLine("下面是张三打招呼和显示成绩的方法");
zsStudengt.SayHello();
zsStudengt.ShowScore();
Console.WriteLine("下面是小兰打招呼和显示成绩的方法");
xlStudent.SayHello();
xlStudent.ShowScore();
Console.ReadKey();
为什么会显示:警告 1 从未对字段“属性习题.Student.chinese”赋值,字段将一直保持其默认值 0 d:\My Documents\Visual Studio 2008\Projects\入学考试练习\属性习题\Class1.cs 46 13 属性习题
作者:
康子龙
时间:
2012-9-19 22:15
你这肯定显示未赋值,但不影响程序运行。
你的chinese,math,english属性的访问器都是对age操作的。
作者:
郑本川
时间:
2012-9-19 22:44
[)3BX0JH79LFH]ZO(3I_0IM.jpg
(3.46 KB, 下载次数: 25)
下载附件
你这个写的有点问题吧,如果等于0,该怎么取值?
2012-9-19 22:42 上传
这个好像不对吧。如果等于0的时候,怎么取值?
作者:
杨进
时间:
2012-9-19 23:12
本帖最后由 杨进 于 2012-9-19 23:54 编辑
int chinese;
public int Chinese
{
get { return chinese; }
set {
age = value >= 0 ? value : 0;
}
}
其中age = value >= 0 ? value : 0;应该改成chinese = value >= 0 ? value : 0;
从age那拷贝代码过来后变量名要改。
english和math也一样。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2