c# 类对象的数组,定义以及如何在其他类或方法中调用数组

2024-11-28 22:32:45
推荐回答(4个)
回答1:

定义方法:

object[] myObjArray = new object[3]; //3的位置是数组长度

如果需要不定长数组,推荐使用List来解决,当需要数组下标特性的时候,只要用ToArray转一下就行了。

List myObjList = new List();
//myObjList.add(new object("my_obj");
object[] myObjArray = myObjList.ToArray();

至于调用,和普通参数传参方法相同,但要注意需要的形式,是引用传入,还是一般传入

引用传入可以使用ref关键字标定,使用时会直接使用对象引用,更改值表示,原值更改。一般传入,仅表示使用其值,返回时需要用返回值,或者使用out关键字标定的传入参数。

总得来说,可以把对象数组当作一般参数来对待,但是使用时注意他真实类型就行了。


针对问题,这个是一个参数域的问题,需要把book数组定义在外部,使book的作用域扩大,现在的book的作用域只是load函数。我大致写一下

book[] = new 

load {

  book[] //赋值等操作

}

click {

  //调用book

}

回答2:

把你这句 Book[] book = new Book[10]; 声明成全局的不就行了嘛。。在LOAD中赋值。。其他地方就可以用了。

回答3:

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);
}

回答4:

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;
}
}
}