如何在 C# 中创建属性?
回答
在 C# 中,属性是类的成员,提供灵活的机制来读取、写入或计算私有字段的值。可以使用属性定义中的get和访问器来创建属性。set
属性可以有一个get访问器、一个set访问器或两者,具体取决于您希望该属性是只读、只写还是读写。
下面是C# 中同时具有get和访问器的属性示例:set
public class Person
{
private string name;
public string Name
{
get {
return name; }
set {
name = value; }
}
}
在 C# 3.0 及更高版本中,您可以使用自动实现的属性,这使您无需显式定义支持字段即可创建属性:
public class Person
{
public string Name {
get; set; }
}
C# 中“params”关键字的用途是什么?
回答
C# 中的关键字params允许方法接受可变数量的指定类型的参数。使用params关键字,您可以将值数组或单独的逗号分隔值传递给该方法。在方法内部,params参数被视为数组。
这是使用关键字的示例params:
public static class Utility
{
public static int Sum(params int[] values)
{
int sum = 0;
foreach (int value in values)
{
sum += value;
}
return sum;
}
}
您可以使用Sum任意数量的参数调用该方法,如下所示:
int result1 = Utility.Sum(1, 2, 3);
int result2 = Utility.Sum(1, 2, 3, 4, 5);
C#中静态类有什么特点?
回答
在C#中,静态类是不能实例化或继承的类。它只能具有静态成员,并且不能具有实例成员(例如实例属性、方法或字段)。静态类的主要特点是:
它是用static关键字声明的。
它不能有构造函数(静态构造函数除外)。
它不能被实例化或继承。
静态类的所有成员也必须是静态的。
可以直接使用类名来访问,无需创建实例。
静态类的常见用途是用于实用函数和扩展方法。下面是 C# 中静态类的示例:
public static class MathUtility
{
public static int Add(int x, int y)
{
return x + y;
}
public static int Subtract(int x, int y)
{
return x - y;
}
}
要使用这个静态类,您只需像这样调用它的方法:
int sum = MathUtility.Add(1, 2);
int difference = MathUtility.Subtract(3, 1);
C# 中如何在两个表单之间传递数据?
回答
在 C# 中,有多种方法可以在 Windows 窗体应用程序中的两个窗体之间传递数据。一种常见的方法是使用公共属性或方法来公开需要传递的数据。这是一个例子:
创建具有公共属性的第二个表单,该属性将保存要传递的数据。
public partial class SecondForm : Form
{
public string Data {
get; set; }
public SecondForm()
{
InitializeComponent();
}
}
在第一个表单中,实例化第二个表单并Data使用要传递的数据设置属性。
public partial class FirstForm : Form
{
public FirstForm()
{
InitializeComponent();
}
private void OpenSecondFormButton_Click(object sender, EventArgs e)
{
SecondForm secondForm = new SecondForm();
secondForm.Data = "Data to be passed";
secondForm.Show();
}
}
在此示例中,当用户单击 时OpenSecondFormButton,将打开第二个窗体,并且Data第二个窗体的属性包含从第一个窗体传递的数据。
C# 中的类和对象有什么区别?
回答
在 C# 中,类是创建对象的蓝图。它定义了该类的对象将具有的结构、属性和方法。类是引用类型,它们可以从其他类继承以扩展或覆盖功能。
另一方面,对象是类的实例。它是根据类定义创建的,并在实例化时占用内存。对象是类的实例,它们包含类中定义的数据(字段)和行为(方法)。
例如,考虑一个Car类:
public class Car
{
public string Model {
get; set; }
public int Year {
get; set; }
public void Drive()
{
Console.WriteLine(