定义方法:
object[] myObjArray = new object[3]; //3的位置是数组长度
如果需要不定长数组,推荐使用List来解决,当需要数组下标特性的时候,只要用ToArray转一下就行了。
List
至于调用,和普通参数传参方法相同,但要注意需要的形式,是引用传入,还是一般传入
引用传入可以使用ref关键字标定,使用时会直接使用对象引用,更改值表示,原值更改。一般传入,仅表示使用其值,返回时需要用返回值,或者使用out关键字标定的传入参数。
总得来说,可以把对象数组当作一般参数来对待,但是使用时注意他真实类型就行了。
针对问题,这个是一个参数域的问题,需要把book数组定义在外部,使book的作用域扩大,现在的book的作用域只是load函数。我大致写一下
book[] = new
load {
book[] //赋值等操作
}
click {
//调用book
}
把你这句 Book[] book = new Book[10]; 声明成全局的不就行了嘛。。在LOAD中赋值。。其他地方就可以用了。
namespace shiyan3_2
{
public partial class Form4 : Form
{
//如果你想在Form4以外的地方调用那就声明为public 变量或public的属性。
Book[] book = new Book[10];
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
book[0] = new Book("chinese", "me", 21, 2,30 );
book[1] = new Book("english", "you", 28, 3, 40);
}
namespace shiyan3_2
{
public partial class Form4 : Form
{
Book[] book;
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
book = new Book[10];
book[0] = new Book("chinese", "me", 21, 2,30 );
book[1] = new Book("english", "you", 28, 3, 40);
}
private void button2_Click(object sender, EventArgs e)
{
Form4 f = new Form4();
var val = book[0];
}
public class Book
{
string title;
string author;
int price;
int store;
int sellprice;
public Book()
{
}
public Book(string ti,string au,int pr,int st,int se)
{
title = ti;
author = au;
price = pr;
store = st;
sellprice = se;
}
}
}