日期:2014-05-18  浏览次数:20516 次

请"Jinglecat(晓风残月)"进来看一下,
ArrayList   m   =   ArrayList.Repeat(arr,arr.Count);
======
1。
我想问下   LZ   ,你这里   repeat   的什么啊?  
是   Repeat   了   arr.Count   个   arr   (ArrayList)   对象

2。
自己应该看清除   ArrayList.Repeat   方法原型的说明

上面的是你在我的上个帖子中的回复内容,小弟有以下疑问想请教您如下:
这个是msdn上的Repeat的定义如下:
  ArrayList   ArrayList.Repeat(object   Value,int   coutn);
想请问一下好多方法参数中都有object   Value作为对数,想请问一下
object   value,到底表示什么呢?是对象的实例吗?


------解决方案--------------------
1.
首先,我们看下MSDN 对此静态方法的说明:
***********************************************
返回 ArrayList,它的元素是指定值的副本。

命名空间:System.Collections
程序集:mscorlib(在 mscorlib.dll 中)

语法
C#
public static ArrayList Repeat (
Object value,
int count
)

参数
value
要在新 ArrayList 中对其进行多次复制的 Object。该值可以为 空引用(在 Visual Basic 中为 Nothing)。

count
value 应被复制的次数。


返回值
具有 count 所指定的元素数的 ArrayList,其中的所有元素都是 value 的副本。
*********************************************************

2.
想请问一下好多方法参数中都有object Value作为对数,想请问一下
object value,到底表示什么呢?是对象的实例吗?
============================================
a. .net 中所有对象的最终基类均为 Object (小写 object 是Object 在 C+++++ 中的别名)
b. C# 中最常见的类型 int, double, float 等等也是对象,(我们叫他们为基于类型 primary type),对应到 。net中的对象分别是 System.Int32, System.Double, System.Single,
他们的最终基类也是object,但是他们比较特别,我们叫他们为值类型。
c. 与值类型对应的就是引用类型,如 String, ArrayList, Array,DataGrid, GridView等等
d. 值类型与引用类型的区别请 baidu + google
e. 因此,假如你已经理解了继承,那么就知道.net中任何对象都可以转换为 Object 类型(对于值类型,别人会再告诉你另一个关键词“装箱”与“拆箱”)
f. 这里 “object value” 表示一个 Object 类型的形参
g. ArrayList 对象是一个集合对象,你可以理解称一维数组,但是这个数组的元素个数可以任意,它会自动管理并分配需要的内存,里面的每个元素类型都是 object
g. 好了, 看 demo:

ArrayList myList1 = ArrayList.Repeat( "abc ", 7 ); // 这里将执行 string 类型到 object 类型的隐式转换
foreach ( Object obj in myList )
Console.Write( "{0} ", obj );
// 输出
// abc abc abc abc abc abc abc


ArrayList myList2 = ArrayList.Repeat( 123, 7 ); // 这里将执行 int 类型到 object 类型的隐式转换,实际上一个装箱的过程
foreach ( Object obj in myList2 )
Console.Write( "{0} ", obj );
// 输出
// 123 123 123 123 123 123 123


3。
更多信息:
ArrayList 类 使用大小可按需动态增加的数组实现 IList 接口。 http://msdn2.microsoft.com/zh-cn/library/system.collections.arraylist(VS.80).aspx