我知道这是一个之前提出的问题,我已经解决了很多问题,但我确实需要一些帮助。
我正在尝试创建一个用于家庭作业的控制台程序,该程序需要用户输入数字,然后将该数字转换为对应的单词。此刻,我可以根据输入创建一个数组,然后生成一个索引。我还可以返回char值以及该值的索引。也就是说,如果输入为72,则它将返回7 = 0和2 = 1。
现在,我基本上必须创建一个将获取该信息的类,然后运行代码以返回单词,但是麻烦的是,我根本无法理解类。我已经阅读了所有笔记,完成了额外的阅读和观看了视频,但我根本听不懂。问我的老师根本没有我。
widgetList(): Array<Widget> {
return this.project.dashboards
.find(x => x.id === this.currentDashboardId).sheets
.find(x => x.id === this.currentSheetId).widgets;
我正试图了解将我创建的信息推送到班级然后再次返回的必要步骤。
如果有人可以帮助我了解我在做什么,那将不胜感激。
谢谢。
答案 0 :(得分:5)
我根本无法理解课程
通过阅读您的示例,我推断出问题是
“我已经声明了一个类和一些方法。我怎么称呼它?”
令人惊讶的是,在SO上没有其他答案(我可以找到),所以我猜有人必须回答。
完成类的声明后(您仍然必须在其方法中添加一些逻辑,但是我想您知道),您需要弄清楚如何调用它。由于您的程序非常小,您可能希望通过Main
方法来调用它。
该类只是一种类型。与任何类型一样,为了对其进行有趣的操作,必须创建一个 instance 并将其分配给变量。在此示例中,我将变量命名为instance
,但您应该使用描述性名称。
var instance = new ToText();
拥有实例后,就可以调用其方法。
var output = instance.ConvertToText(input);
在上下文中,它看起来像这样:
static public void Main(string[] args)
{
//Your other code might go here
var instance = new ToText();
var output = instance.ConvertToText(input);
//and here
}
这就是创建类(又称对象)实例并调用其方法的方式。
注意:您的代码中还有许多其他问题,但是我只是想回答这个问题。而且您应该知道,有一些使用类而不实例化实例的方法(称为“静态”),但这似乎并不是您分配任务的重点。
答案 1 :(得分:0)
您可以通过两种方式调用您的课程/方法
首先,您可以将您的convertotext方法创建为静态方法。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == "request_code_for_button_activity") {
if (resultCode == CommonStatusCodes.SUCCESS) {
if (data != null) {
if (data.getStringExtra("item_to_delete") != null) {
//DELETE YOUR ITEM HERE
} else if (data.getStringExtra("item_to_save") != null) {
//SAVE YOUR ITEM HERE
}
}
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
static意味着您不需要创建ToText类的实例,然后在您的main方法中可以像这样调用它
public static string ConvertToText(string NumberToConvert)
{
char[] getarray = NumberToConvert.ToCharArray();
for (int getindex = 0; getindex < getarray.Length; getindex++)
{
char getchar = getarray[getindex];
Console.WriteLine("getchar: " + getchar);
//Console.WriteLine("getarray: " + getarray);
Console.WriteLine("getindex: " + getindex);
//int convertinput = Convert.ToInt32(getinput);
}
return ""; // return the Converted value
}
或者您可以只创建一个实例方法
static void Main(string[] args)
{
Console.WriteLine("This program will convert numbers that you enter into their spoken English counterpart.\nExample: 100 = One Hundred.\n\nPlease enter your desired number to convert: ");
// Static method call
string ConvertedValue=ToText.ConvertToText(Console.ReadLine());
Console.WriteLine(ConvertedValue);
}
并按如下所示进行调用:
public string ConvertToText(string NumberToConvert)
{
char[] getarray = NumberToConvert.ToCharArray();
for (int getindex = 0; getindex < getarray.Length; getindex++)
{
char getchar = getarray[getindex];
Console.WriteLine("getchar: " + getchar);
//Console.WriteLine("getarray: " + getarray);
Console.WriteLine("getindex: " + getindex);
//int convertinput = Convert.ToInt32(getinput);
}
return ""; // return the Converted value
}
答案 2 :(得分:0)
这是我的尝试。我可以将其设置为1-19。它通过一种方法将值从主类传递到另一个类。您可以在完成后发布完整的解决方案吗,因为我现在也在尝试解决这个问题。
class Program
{
static void Main(string[] args)
{
//Ask the user to input a number
Console.WriteLine("Please enter a number and this will convert it into the the word version of the number:");
//Inputs from console are in a string format as readline returns string
string UserInput = Console.ReadLine();
//Make an instance of the ConvertNumber class where the method numberConversion lives. I've called the instance numberConversion.
ConvertNumber numberConversion = new ConvertNumber();
//Here I'm saying numberConversion use your method NumberTooText and I'm sending the UserInput from this class along with it.
numberConversion.NumberTooText(UserInput);
}
}
class ConvertNumber
{
//I combined your first two arrays for one to nineteen
private string[] oneToNineteen = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; //each value is part of the array
//Method for number to text
public void NumberTooText(string userinput) {
//As I wanted to iterate and use the number for the array index we need to convert the string we got from program cs to int
int number = Int32.Parse(userinput);
//If the number is 19 or less the console will write from the array[userInputNumber]
// In the else statement you can create a method for greater than 19
if (number <= 19) {
Console.WriteLine(oneToNineteen[number]);
}
}
}