///类的写法一:省去命名空间,省去构选函数,就写法来讨论
class Add1
{
private int m_FirstNumeber;
private int m_SecondNumber;
public int FirstNumber
{
get{ FirstNumber = m_FirstNumber;}
set{ m_iFirstNumber = value;}
}
public int SecondNumber
{
get{ SecondNumber = m_SecondNumber;}
set{ m_SecondNumber = value;}
}
public int Add()
{
return m_FirstNumber + m_SecondNumber;
}
}
///类的写法2
class Add2
{
private int m_FirstNumeber;
private int m_SecondNumber; public int Add(m_FirstNumber, m_SecondNumber)
{
return m_FirstNumber + m_SecondNumber;
}
}
///这二个类都实现一个功能,就是二数相加,下面是引用!
int sum = 0;
Add1 add1 = new Add1();
add1.FirstNumber = 1;
add1.SecondNumber = 1;
sum = add1.Add();
///这一种方法,是对类的属性付值,然后调用这个类的方法!
int sum = 0;
Add2 add2 = new Add2();
sum = add2.Add(1, 1);
///这一种方法,真接向方法输入二个参数,然后调用这个类的方法!
在C#没出来之前,都用第二种方法,现在有了C#就多了一种方法!
请问那种方法的运行效率高呢!如果相同的话,你们让为要用那种方法啊!
我好郁闷啊,帮一下我吧!我认为第一种方法的可读性好!当写的代码多!
第二种的可读性差一些,便写的代码少!
class Add1
{
private int m_FirstNumeber;
private int m_SecondNumber;
public int FirstNumber
{
get{ FirstNumber = m_FirstNumber;}
set{ m_iFirstNumber = value;}
}
public int SecondNumber
{
get{ SecondNumber = m_SecondNumber;}
set{ m_SecondNumber = value;}
}
public int Add()
{
return m_FirstNumber + m_SecondNumber;
}
}
///类的写法2
class Add2
{
private int m_FirstNumeber;
private int m_SecondNumber; public int Add(m_FirstNumber, m_SecondNumber)
{
return m_FirstNumber + m_SecondNumber;
}
}
///这二个类都实现一个功能,就是二数相加,下面是引用!
int sum = 0;
Add1 add1 = new Add1();
add1.FirstNumber = 1;
add1.SecondNumber = 1;
sum = add1.Add();
///这一种方法,是对类的属性付值,然后调用这个类的方法!
int sum = 0;
Add2 add2 = new Add2();
sum = add2.Add(1, 1);
///这一种方法,真接向方法输入二个参数,然后调用这个类的方法!
在C#没出来之前,都用第二种方法,现在有了C#就多了一种方法!
请问那种方法的运行效率高呢!如果相同的话,你们让为要用那种方法啊!
我好郁闷啊,帮一下我吧!我认为第一种方法的可读性好!当写的代码多!
第二种的可读性差一些,便写的代码少!
其次,C#的那种方式,对于大型一些的东东,适用,像这种很小的东东,还是效率为上,而且,小东东,一般是被调用执行的频率很高,所有哪怕一次能省一点时间,N次执行,不是就省N多时间了吗
所以,在这种情况下,我选第二种,老方式
int m_SecondNumber;
这两个成员没别的用处的话,显然是第二个(这时,第一个是毫无疑义的)
但如果这两个成员由别的地方需要用到那肯定是第一个好
第二种,还需要那两个成员变量吗?根本就没用到吧?
{
private int m_FirstNumeber; //
private int m_SecondNumber; // 这两行根本就是废物 public int Add(m_FirstNumber, m_SecondNumber) // 还不如直接用static
{
return m_FirstNumber + m_SecondNumber;
}
}|
Vclass Add2{
public static int Add(int v1, int v2) { return v1+v2; }
}int sum = Add2.Add(1, 1);
public int Add(m_FirstNumber, m_SecondNumber)
这行能编译才怪
如果加上static的话
直接 类名.方法名(参数)就可以了
这样的话就破坏了类的封装比如System.Console类
其实微软是用了sealed来防止继承
public static void WriteLine(bool value)
……
{
int first = 0;
int second = 0; public int First
{ get { return first; }
set { first = value; }
}
public int Second
{ get { return second; }
set { second = value; }
} public int Add()
{ return first + sencond; }
public int Add(int p1, int p2)
{
first = p1;
second = p2;
return Add();
}
}