两个基本问题~~C#
1.谁能解释清楚 字段 和 属性。。我看了几篇文章。云里雾里。2.Convert的显示转换咋没有tofloat?,和(double)Variant这种转换有何区别? --------------------编程问答-------------------- 网上这么多资料,你都看不懂,我们说也没用
Convert.ToSingle --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/ms173118(VS.80).aspx --------------------编程问答-------------------- 哎!!教训的好 --------------------编程问答--------------------
教训的好,楼主这种货色,可以去死了。。 --------------------编程问答-------------------- 这种骂法也不对,每个人都有难处嘛.
加油喔,楼主 --------------------编程问答-------------------- --------------------编程问答-------------------- 下面结构图:
类 ===(包含)====》 字段+ 属性 +方法。
属性 ----(取设)----> 字段
方法 ----(取设)---->字段+属性 --------------------编程问答-------------------- 照顾一下新手,每个人都有新手的时候,每个人对懂的定义不同,深挖一层,也许你也未必全懂。 --------------------编程问答-------------------- 网上很多都是转载,都人云亦云的认同了,那么想要创新真的很难。 --------------------编程问答-------------------- [方法]:
是万能的,可能对 [字段]+ [属性] +[方法 ] 随意 调用。
如果:
要对private 的[字段] 执行(取设)操作。
当然:
用方法来写也行,
只是:太麻凡了,
于是:就出现了属性。
是这种类型 方法的简体版。--简体版:简写版
//因专用来 (取设[字段]) 所以 大家就这种方法为属性,
为什么大家叫属性呢。---因为这种方法都是为了改变对象的内部状态的。好比是改变对象的属性。
字段,是对象的 内部状态 的表示。表示这个对象的情况 ,也可以说这个对象的状态。
是组成 对象的最小单位。
以上:
所谓个人的理解,
就是说:书上找不到的,书上也绝对不会这样说的。
个人理解:就是结合我自己的情况,对某一问题,作出最佳理解方式,
不知这种方式是否合适你。
--------------------编程问答--------------------
\thanks~ --------------------编程问答-------------------- --太多错字了:
[方法]:
是万能的,可以对 [字段]+ [属性] +[方法 ] 随意 调用。
如果:
要对private 的[字段] 执行(取设)操作。
当然:
用方法来写也行,
只是:
用方法来写 太麻凡了,
于是:
出现了另一种写法,由于这种写法简单,目的是为了改变对象的内部状态,所以大家称之为[属性]。
[属性]:
为什么大家叫[这种写法]属性呢。---因为[这种写法] 都是为了改变对象的内部状态的。好比是改变对象的属性。
[字段]:
是对象的 内部状态 的表示。表示这个对象的情况 ,也可以说这个对象的状态。
是组成对象的最小单位。
以上: 全是个人的理解
所谓个人的理解,
就是说,“书上找不到的,书上也绝对不会这样说的”。
个人理解:就是结合我自己的情况,对某一问题,作出最佳理解方式,
不知这种方式是否合适你。 --------------------编程问答-------------------- --------------------编程问答-------------------- 2.Convert的显示转换咋没有tofloat?,和(double)Variant这种转换有何区别?
现回答问题二了:
(double)Variant
C# 中常见类据类型用:
================================
int, 4字节
long, 8字节
double, 10字节
flaot, 8字节
char, 1字节
decimal 128位,16字节
=======================================
以上你看,
他的字节不同,表示占用内存大小不同,
比如:你说的,
int Variant = 10;
double dv = (double)Variant ;
上面你码是什么意思呢?
解译:
这只是 从内存中 原原本本的复制 Variant变量的 值(4字节 ) 到变量dv (8字节) 里去,
整个过程中,里面的数据不会有任何改变,
convert 就不同,
convert 是一个方法,它可以有对原变量的数据进行任意改变,
你要知道它是如何改变的,就要用反编译器看看其原码了。
是不是数据大小不同啊 --------------------编程问答-------------------- 属性是一种特殊的方法。如果你用过Java,那么一定会对那种特殊的方法命名 getXXX setXXX 有所了解。
在.NET中,也有类似的用法,C#语言对此做了封装。
比如:
class A
{
public int id { get; set; }
}
其实C#会为你展开成这么多的代码:
class A
{
private int _id;
public int get_id() { return _id; }
public void set_id(int value) { _id = value; }
}
属性的两大好处是,首先属性是披着字段外衣的方法,它兼容字段的语法,你将一个公有字段转变成属性,那么调用者的源代码不需要修改(注意,二进制是不兼容的,因为它毕竟是方法,和字段有本质的不同)。另外相当多的数据绑定控件,都可以支持对属性的绑定。另一个好处是,我们可以利用属性实现数据读取的更多控制,比如这些场合:数据验证——我们可以在设置属性的时候对数据做验证;懒惰加载——当数据量很大的时候,我们可以在程序访问这个属性的时候再设置值,而不是在对象产生的时候一次性加载;编写属性修改通知事件,等等。
另一个问题是这样的,基本类型的强制类型转换,包括ParseXXX 方法,内部都是对Convert相关方法调用实现的。 --------------------编程问答-------------------- 光是看网上的文章是不行的,具体的去别你可以借鉴网上的实例,然后再自己做的过程中去体会,别人没办法把体会给你说明白。
最主要的还是自己动手实践。
希望不要气馁,要有信心。
补充:.NET技术 , C#