C# 为整数值标识符和新编号创建类
我想用C#通过一些训练测试,但我真的坚持了这个 任务说明:在不更改C# 为整数值标识符和新编号创建类,c#,C#,我想用C#通过一些训练测试,但我真的坚持了这个 任务说明:在不更改函数()中的任何字符串的情况下修复编译器错误,创建integer类以标识具有特定名称的整数变量myIntIdentifier,并输出myNmb值 public void Function() { myIntIdentClass orgNumb = new Number { numbVal = 1, numbStr = "One&qu
函数()中的任何字符串的情况下修复编译器错误,创建integer类以标识具有特定名称的整数变量myIntIdentifier
,并输出myNmb
值
public void Function()
{
myIntIdentClass orgNumb = new Number { numbVal = 1, numbStr = "One"};
int myNmb= orgNumb;
Console.WriteLine(myNmb);
}
以下是我尝试过的:
public class myIntIdentClass
{
public int numb { get; set; }
public static implicit operator int(myIntIdentClass v)
{
throw new NotImplementedException();
}
}
public class Number
{
private int intVal { get; set; }
private string strVal { get; set; }
}
但是新编号显示:
“Number”由于其保护级别而不可访问
您无法初始化类道具,因为它们是私有的。
在这里,您试图使用一行初始值设定项初始化您的类
但是你的道具是私人的,所以你不能访问它们
new Number { numbVal = 1, numbStr = "One"};
您可以将Number类中道具的封装级别设置为public以修复此错误
公共类编号
{
公共int intVal{get;set;}
公共字符串strVal{get;set;}
}
顺便说一句,道具的惯例是封装级别为public,命名为PascalCase
另一个错误是,您缺少从Number到myIntIdentClass的隐式强制转换,您无法初始化类道具,因为它们是私有的。
在这里,您试图使用一行初始值设定项初始化您的类
但是你的道具是私人的,所以你不能访问它们
new Number { numbVal = 1, numbStr = "One"};
您可以将Number类中道具的封装级别设置为public以修复此错误
公共类编号
{
公共int intVal{get;set;}
公共字符串strVal{get;set;}
}
顺便说一句,道具的惯例是封装级别为public,命名为PascalCase
另一个错误是缺少从Number到myIntIdentClass的隐式转换
提示:private
表示只能在类内访问。将访问修饰符更改为公共
,或内部
还要注意Number
和myIntIdentClass
如何共享至少一个整数属性。我认为这里的意图是使用继承
最后,您需要编写一个用户定义的隐式运算符
,以便在需要时将myIntIdentClass
转换为整数
下面的代码填充了上述项目
public class myIntIdentClass
{
public int numbVal { get; set; }
public static implicit operator int(myIntIdentClass my)
=> my.numbVal;
}
public class Number : myIntIdentClass
{
public string numbStr { get; set; }
}
提示:private
表示只能在类内访问。将访问修饰符更改为公共
,或内部
还要注意Number
和myIntIdentClass
如何共享至少一个整数属性。我认为这里的意图是使用继承
最后,您需要编写一个用户定义的隐式运算符
,以便在需要时将myIntIdentClass
转换为整数
下面的代码填充了上述项目
public class myIntIdentClass
{
public int numbVal { get; set; }
public static implicit operator int(myIntIdentClass my)
=> my.numbVal;
}
public class Number : myIntIdentClass
{
public string numbStr { get; set; }
}
你能给我看看你的数字课吗?@Miraziz你好,我不知道怎么用这个case@RezaAghaei我已经试过了,但对我来说,不改变Value=1,NumberString=“One”的情况下,不清楚如何使用它。似乎您的函数方法与Number不在同一个类中。那么,将数字保护改为公共(公共类编号)你能显示你的数字类吗?@Miraziz似乎你好,我不确定,在这种情况下如何使用它case@RezaAghaei我已经试过了,但对我来说,不改变Value=1,NumberString=“One”的情况下,不清楚如何使用它。似乎您的函数方法与Number不在同一个类中。因此,将编号保护更改为公共(公共类编号)