c# 类对象的数组,定义以及如何在其他类或方法中调用数组
namespaceshiyan3_2{publicpartialclassForm4:Form{publicForm4(){InitializeComponent();}...
namespace shiyan3_2
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
Book[] 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();
}
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;
}
}
}
如何在button_click中调用book【0】呢?看到一些人说不能调用的,如果不能调用那数组不就是废了
请原谅我是个菜鸟,求帮助 展开
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
Book[] 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();
}
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;
}
}
}
如何在button_click中调用book【0】呢?看到一些人说不能调用的,如果不能调用那数组不就是废了
请原谅我是个菜鸟,求帮助 展开
展开全部
定义方法:
object[] myObjArray = new object[3]; //3的位置是数组长度
如果需要不定长数组,推荐使用List来解决,当需要数组下标特性的时候,只要用ToArray转一下就行了。
List<object> myObjList = new List<object>();
//myObjList.add(new object("my_obj");
object[] myObjArray = myObjList.ToArray();
至于调用,和普通参数传参方法相同,但要注意需要的形式,是引用传入,还是一般传入
引用传入可以使用ref关键字标定,使用时会直接使用对象引用,更改值表示,原值更改。一般传入,仅表示使用其值,返回时需要用返回值,或者使用out关键字标定的传入参数。
总得来说,可以把对象数组当作一般参数来对待,但是使用时注意他真实类型就行了。
针对问题,这个是一个参数域的问题,需要把book数组定义在外部,使book的作用域扩大,现在的book的作用域只是load函数。我大致写一下
book[] = new
load {
book[] //赋值等操作
}
click {
//调用book
}
展开全部
把你这句 Book[] book = new Book[10]; 声明成全局的不就行了嘛。。在LOAD中赋值。。其他地方就可以用了。
更多追问追答
追问
即是放到namespace shiyan3_2下面?
追答
是放到 class Form4 : Form这个类的里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
{
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);
}
追问
声明public之后 我在Form4_Load方法里面的book[0]和book[1]都可以再Form4之外调用?
变量跟属性本质上有什么不同?
追答
封装性的问题。
公共变量,读写权限不能更改。
公共属性则可设置读写权限,并可根据情况在Get和Set中添加其他处理。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
}
{
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;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询