我有三个类:第一类和第二类变量,如下所示:
头等舱
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project_1
{
class First_class
{
int variable_1 = 1;
int variable_2 = 1;
int variable_3 = 3;
string variable_4 = "test1"
}
}二等
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project_1
{
class Second_class
{
int variable_5 = 5;
int variable_6 = 6;
int variable_7 = 7;
string varaible_8 = "test_2"
}
}第三级为空:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project_1
{
class Program
{
static void Main(string[] args)
{
}
}
}发布于 2018-12-12 20:21:54
如果要在First_class之外使用这些变量,则必须将它们声明为公共变量。
class First_class
{
public static int variable_1 = 1; // This can be accessed from outside
public int variable_2 = 1; // This can be accessed from outside too
int variable_3 = 3; // This can not be accessed from outside
string variable_4 = "test1"; // This also can not be accessed from outside
}
class Program
{
static void Main(string[] args)
{
var o = new First_class();
Console.Writeline(First_class.variable_1);
Console.Writeline(o.variable_2);
Console.Writeline(o.variable_3); // Error: variable_3 is private
}
}发布于 2018-12-12 20:41:40
1.这里有两种可能性:
( a)要使用三等舱头等舱的所有变量,就必须将它们全部公之于众。
( b)您可以使它们都是静态的、公共的或受保护的,但是在这种情况下,Program类需要从第一个类继承,这样看起来就像:
public class First_class
{
protected static int variable_1 = 1;
protected static int variable_2 = 1;
protected static int variable_3 = 3;
protected static string variable_4 = "test1";
}
class Program: First_class
{
static void Main(string[] args)
{
Console.WriteLine(variable_1);
Console.WriteLine(variable_2);
Console.WriteLine(variable_3);
Console.WriteLine(variable_4);
}
}2.例子:
class Second_class
{
int variable_5 = 5;
int variable_6 = 6;
int variable_7 = 7;
public string varaible_8 = "test_2"; //only this field can be accessed
}
public class First_class
{
public int variable_1 = 1;
public int variable_2 = 1;
protected int variable_3 = 3; // can be accessed via inheritance
private string variable_4 = "test1"; // cannot be accessed due to privacy level
}
class Program
{
static void Main(string[] args)
{
var obj1 = new First_class();
Console.WriteLine(obj1.variable_1);
Console.WriteLine(obj1.variable_2);
var obj2 = new Second_class();
Console.WriteLine(obj2.varaible_8);
}
}https://stackoverflow.com/questions/53750528
复制相似问题