这可能听起来很愚蠢,但我正在学习C#课程,我们跳过了书中的许多章节,仅使用控制台应用程序进行操作。我们得到了一个练习,基于冠词、名词、动词和介词数组构建字符串句子,并将字符串第一个单词的首字母大写。关键是,它要求输出到一个文本框。这并不是问题所在,因为
a)我们绕过了所有有关GUI的章节(将在下一季度的C#课程中讲解),以及
b)我查看了书籍甚至Stack Overflow和其他在线资源,但无法解决它。
不幸的是,我的讲师选择不在昨晚的课堂上讨论这个练习。由于他和我不在同一页面上(不是不喜欢,更多的是化学反应的问题),我想自己解决这个问题。并且交作业期限已经过去了,所以我现在只是为了个人启示而问。
以下是我创建的代码。我编写它以输出到控制台,只是为了展示我理解了问题的基本机制。我知道我必须创建一个单独的窗体,在GUI窗口中放置一个文本框,但我无法弄清楚如何将输出发送到文本框而不是控制台。
a)我们绕过了所有有关GUI的章节(将在下一季度的C#课程中讲解),以及
b)我查看了书籍甚至Stack Overflow和其他在线资源,但无法解决它。
不幸的是,我的讲师选择不在昨晚的课堂上讨论这个练习。由于他和我不在同一页面上(不是不喜欢,更多的是化学反应的问题),我想自己解决这个问题。并且交作业期限已经过去了,所以我现在只是为了个人启示而问。
以下是我创建的代码。我编写它以输出到控制台,只是为了展示我理解了问题的基本机制。我知道我必须创建一个单独的窗体,在GUI窗口中放置一个文本框,但我无法弄清楚如何将输出发送到文本框而不是控制台。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _16._4_StoryWriter
{
class StoryWriter
{
static void Main(string[] args)
{
string[] articles = { "the", "a", "one", "some", "any" };
string[] nouns = { "boy", "girl", "dog", "town", "car" };
string[] verbs = { "drove", "jumped", "ran", "walked", "skipped" };
string[] preps = { "to", "from", "over", "under", "on" };
string articleStory = "";
string nounStory = "";
string verbStory = "";
string prepStory = "";
Random random = new Random();
for (int counter = 1; counter <= 10; ++counter)
{
int randomNext = random.Next(5);
articleStory = articles[randomNext];
randomNext = random.Next(5);
nounStory = nouns[randomNext];
randomNext = random.Next(5);
verbStory = verbs[randomNext];
randomNext = random.Next(5);
prepStory = preps[randomNext];
Console.WriteLine(UppercaseFirst(articleStory) + " " + nounStory + " " + verbStory + " " + prepStory + ".");
} // End For
Console.Read();
} // End Main
static string UppercaseFirst(string s) // Borrowed from dotnetperls.com tutorial for making first letter uppercase
{
if (string.IsNullOrEmpty(s)) // Checks for an empty string
{
return string.Empty;
}
char[] a = s.ToCharArray(); // Creates array of characters from a string
a[0] = char.ToUpper(a[0]); // Selects value of zeroth position and changes to upper case
return new string(a); // Passes new string back
} // End method
} // End Class
} // End Namespace