刚看了一段代码。是关于构造函数的重载!其实以前学校C ++ 的时候已经学过。但是现在再看C#的时候,虽然是一样的,但是还是有很多没明白。比如下面的一个问题还是经过调试后,才发现的。虽然问题不大,不过如果用手写的话,就会造成严重的错误!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TimeTest
{
class Time2
{
private int hour;
private int minute;
private int second;
public Time2()
{
setTime(0, 0 , 0);
}
// public Time2(int hour)
// {
// setTime (hour,0,0);
// }
// 错误 1 类型“TimeTest.Time2”已定
//义了一个 为“Time2”的具有相同参数类型的成员
// G:/CNET/test/TimeTest/TimeTest/Program.cs 24 16 TimeTest
public Time2(int minute)
{
setTime(0, minute, 0);
}
public void setTime(int h,int m,int s)
{
hour = (h >=0 && h<=24)? h:0;
minute = (m >=0 && m < 60) ? m:0;
second = (s >=0 && s <60) ? s:0;
}
public string ToUniversal()
{
return String.Format ("{0:D2}:{1:D2}:{2:D2}",hour,minute,second);
}
public string ToStandard()
{
return string.Format("{0}:{1:D2}:{2:D2} {3}",
((hour >= 0 && hour < 12) ? hour : hour % 12), minute, second, (hour > 12) ? "FM" : "AM");
}
static void Main(string[] args)
{
Time2 time = new Time2(12);
Time2 time1 = new Time2(2);
string output;
output = "hello /n";
//time.setTime(7, 8, 9);
output += "/n" + time.ToUniversal() +
"/n" + time.ToStandard();
//time .setTime ()
//time1.setTime()
output += "/n/n" + time1.ToUniversal() +
"/n" + time1.ToStandard();
Console.Write(output);
Console.ReadKey();
}
}
}
我本来是想表达的是,一个构造函数对 小时(hour)进行重载,另一个对分钟(minute)
进行重载,但是在这就报错了。开始还理所当然的,以为构造函数所带的参数不同。呵呵~~报错后,才想起,这个参数是 局部变量 ,对上下文其他的方法,不能构成影响!
——知识重在积累!!