DateTime myDateTime1 = new DateTime();
Response.Write(myDateTime1.Now);
Response.Write(myDateTime1.Now);
解决方案 »
- 请问C#里有没有跟VB里的Property Let/Set/Get类似的方法?
- 一个简单的C#代码
- web service权限问题
- C#中如何使用if else判断一个字符是小写字母
- 关于ComboBox
- DataSet中的数据量有没有限制?
- 多线程同时操作DLL的不同函数时貌似会出错,请问如何让线程不同时操作DLL
- 刚得到个消息,发出来与大家共享。
- 各位老大/高手:配置文件应该放在什么目录下
- frmMain中定义一个frmA,然后frmA.Show(),此时我会去点frmMain窗体,那此时frmA会躲到后面去,我如何在frmMain中比如按一下一个按钮让frmA
- DataGrid 中 加入 按钮
- 怎样连接网络共享?(自动输入登陆信息)
Response.Write(DateTime.Now);
Response.Write(DateTime.Now.tostring("MM/dd/yyyy hh:mm:ss");
你把这个问题想反了,类怎么可能去适应一个特有的方法呢?应该是方法适应类。方法通过重载,知道怎样去处理一个特定类型的对象。
比如:
class MyClass
{
public MyClass(){}
private string description;
public string Description
{
get{ return this.description; }
}
}
果方法原型Response.Write( MyClass obj );
他在内部应该是这么做的
Class HttpResponse
{
...
public void Write( string text )
{
...
}
public void Write( MyClass obj )
{
this.Write( obj.Description );
}
}
结构类型比如Int32,DateTime等等这些很简单,你给他们赋值多少,他们就是多少,是一个很直观的数字或者字符串,或者干脆不赋值,他们也有一个系统自动的默认值。
可问题是有些对象狠抽象,比如我描述一辆汽车“car”这个对象的值又是什么呢?
另外我如果自己想定义一个类,怎样定义才能让这个类本身(而不是它的某个属性[to:Tony宝宝])有一个值?就像值类型一样~~~我特别想知道~~这是我学习面向对象编程中遇到的障碍~~
再恳请各位专家帮我解答一下
----------------------------------------------------------------------------
这个你可以用属性实现:
class A
{
int size;
public int Size { get {return size;} set {size = value;} }
...
}
然后用的时候:
A a = new A();
a.Size = 11;//赋值
int i = a.Size;//取值
所以,如果要描述一辆汽车“car”这个对象的值(你可以先定义car要有多少种属性比如车型,车号,生产商等属性),然后用的时候:
Car car = new Car();
//对car的属性进行赋值最后:
Response.Write(car.Number);//输出车号
也可以理解为对象所具有的一系列属性
==========================================================
这句话的理解有些错误,不能说类的值,只能说类的某个对象的值DateTime myDateTime1 = new DateTime(); //实例化一个类
Response.Write(myDateTime1.Now); //输出对象
{
Car obj; //此时obj变量没有指向任何对象,所以值是空
obj=new Car(); //此时在堆中为Car的一个实例分配了内存,
并将obj指向该实例,该实例就是obj的值。
}(2)从输出角度看:C#中对象的值也可以理解为执行某些特殊方法后的输出结果,一般包括:Equals()、GetHashCode()、ToString()这些继承自System.Object类的方法。这个应该很容易理解,你前面提到如果想要Response.Write(对象)就输出对象的值应该就是值的这个了。(3)某些特殊对象,如委托,委托本身代表其它对象的方法,所以委托的值就是该方法的值,如:
private delegate String GetAString();
static void Main(string[] args)
{
int x=4;
GetAString firstMethod=new GetAString(x.ToString);
Console.Write(firstMethod);
}
这里firstMethod是委托的实例,同时也代表x.ToString方法。所以firstMethod的值就是方法的值=4。呵呵,不知道能否对你有帮助。
简单类型,比如基元类型Int32,String,Boolean等等,这些当然可以很容易理解他们的“值”是什么意思。但别忘记了,这些“意思”都是人为加上去的,对象本身并没有这些“意思”。
一个复杂类型的对象,本来就不能用简简单单的“值”来解释。比如说:人类是一个复杂的类,你是一个类型为人类的对象,你的值是什么?我们能这么问吗?我们只能问你的身高是多少,你的体重是多少,你的血压有多高等等,即属性。明白了这个概念后,我想问题应该能解决了吧?
如果你硬要给这个类型的对象加上一个值的概念,那也只是在你的Context中有效,放到别的Context中未必就是这个概念了,所以这还是一个人为加上去的意思。For example:
class Human
{
private int weight;
private int height;
private int age;
private string name;
private string sex; public int Weight{get;set;}
public int Height{get;set;}
public int Age{get;set;}
public string Name{get;set;}
public string Sex{get;set;} public Human(){} public string WhatIsMyValue()
{
return "Hi, everybody! My name is " +
Name +
"! I'm " +
Age.ToString() +
" years old. I'm " +
Weight.ToString() +
"kg and I'm " +
Height.ToString() +
"cm tall.";
}
}
private int height; 0
private int age; 0
private string name; 0
private string sex; 0
输出:01/01/0001 00:00:00======================================就你的例子来说,就是输出了类的一个属性(Now,当前时间),也就是说把一个属性当成了默认值。一般是输出常用的属性或者是命名空间。对象的值就是对象,就是car ,但是像你那样作,.net没法把整个的一个car输出,那么就输出car 的一个属性,或者是car 的命名空间。
他的四个方法,
1.Equals()虚方法
确定两个 Object 实例是否相等。
2.GetHashCode()虚方法
用作特定类型的哈希函数,适合在哈希算法和数据结构(如哈希表)中使用。
3.GetType()方法
获取当前实例的 Type。
4.ToString()虚方法
返回表示当前 Object 的 String。
========================================
你是自定义的一个类可以通过重写GetHashCode方法得到该类实例的唯一值,
也可以通过重写ToString()虚方法返回该类的自定义值,该值可以由你自己指定.
如果是.net framework中的类、结构、枚举、委托,微软已经大部分都重写了ToString()
和GetHashCode方法。
这个与asp dotnet无关,建议你看一些面向对象的书
特别是rockrabbit(紫色石头) tonybaobao(Tony宝宝) zhzuo(秋枫) 的讲解让我如梦粗醒啊!~~