应该是个很常见的问题,试着写了一个,当然是通不过的啦:
public static object add_member(object[] group, object member)
{
bool flag = false;
for (int n = 0; n < group.Length; n++)
{
if (group[n] == member)
{
flag = true;
break;
}
}
if (flag == false)
{
group[group.Length] = member; } return group;
} static void Main(string[] args)
{
int[] test_array = new int[10];
add_member(test_array, 1);
int n=1;
foreach (int im in test_array)
{
Console.WriteLine(im);
n++;
}
} 错误 1 与“exam_delegate.Program.add_member(object[], object)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“int[]”转换为“object[]” 比较那部分,如果不能直接用==,似乎可以用委托来实现。能不能帮我改改?
public static object add_member(object[] group, object member)
{
bool flag = false;
for (int n = 0; n < group.Length; n++)
{
if (group[n] == member)
{
flag = true;
break;
}
}
if (flag == false)
{
group[group.Length] = member; } return group;
} static void Main(string[] args)
{
int[] test_array = new int[10];
add_member(test_array, 1);
int n=1;
foreach (int im in test_array)
{
Console.WriteLine(im);
n++;
}
} 错误 1 与“exam_delegate.Program.add_member(object[], object)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“int[]”转换为“object[]” 比较那部分,如果不能直接用==,似乎可以用委托来实现。能不能帮我改改?
而且这个问题经常遇到,不管是string 还是 int 或者其他类型
{
group[group.Length] = member; } ///这句话有严重问题
int 数组里面的每个元素 值类型你把引用类型赋值到值类型 不行<----------如tautaulee所说
ArrayList (1.1版)
List<T> (2.0版)
using System.Collections.Generic;
using System.Text;namespace TestValueTypeReferenceType
{
class Program
{
static void Main(string[] args)
{
object[] myGroup = new object[10]; object[] myGroupReference = AddMember(myGroup, 8); foreach (int n in myGroupReference)
{
Console.WriteLine(n.ToString());
} Console.ReadLine();
} public static object[] AddMember(object[] group, int member)
{
for (int i = 0; i < group.Length; i++)
{
group[i] = member;
} return group;
}
}
}编译通过
肯定不是我想要的,我是想不确定类型的某个数组,而不只是int的。如果我能确定类型,何必这么麻烦。都说了是初学,概念肯定不是很清晰,别嘲笑我。
using System.Collections.Generic;
using System.Text;namespace TestValueTypeReferenceType
{
class Program
{
static void Main(string[] args)
{
object[] myGroup = new object[10]; object[] myGroupReference = AddMember(myGroup, new TestClass()); foreach (object n in myGroupReference)
{
Console.WriteLine(n.ToString());
} Console.ReadLine();
} public static object[] AddMember(object[] group, object member)
{
for (int i = 0; i < group.Length; i++)
{
group[i] = member;
} return group;
}
} class TestClass
{
public override string ToString()
{
string str = "This is an object.";
return str.ToString();
}
}
}
using System.Collections.Generic;
using System.Text;namespace TestValueTypeReferenceType
{
class Program
{
static void Main(string[] args)
{
object[] myGroup = new object[10]; //object[] myGroupReference = AddMember(myGroup, new TestClass()); foreach (object n in AddMember(myGroup, new TestClass(), 8))
{
Console.WriteLine(n.ToString());
} Console.ReadLine();
} public static object[] AddMember(object[] group, object member1, int member2)
{
for (int i = 0; i < group.Length/2; i++)
{
group[i] = member1;
} for (int i = 5; i < group.Length; i++)
{
group[i] = member2;
} return group;
}
} class TestClass
{
public override string ToString()
{
string str = "This is an object.";
return str.ToString();
}
}
}