【问题标题】:Xamarin - Morse code app usuing the flaslightXamarin - 使用手电筒的摩尔斯电码应用程序
【发布时间】:2018-12-18 16:17:23
【问题描述】:

我正在尝试为大学项目制作莫尔斯电码,我想做的是使用二维数组将人们输入的莫尔斯电码保存到文本文件中,然后能够从文本中加载它文件,我的逻辑是在数组中是这个数组[莫尔斯名称] [莫尔斯输入]。我首先需要弄清楚的是如何将数据从方法/按钮 OBtn_Clicked 、 LBtn_Clicked 、 SBtn_Clicked 和 EndBtn_Clicked 发送到 NewMorseBtn_Clicked 以添加到数组中,然后将其写入我创建的文本文件中。

namespace FlashLightApp2018
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MorsePage : ContentPage
    {
        //bool exitLoop = false;
        public MorsePage()
        {
            InitializeComponent();
        }

        private async void NewMorseBtn_Clicked(object sender, EventArgs e)
        {
            bool isTextEmpty = String.IsNullOrEmpty(MorseName.Text);
            if (isTextEmpty)
            {

            }
            else
            {
                OBtn.IsEnabled = true;
                LBtn.IsEnabled = true;
                SBtn.IsEnabled = true;
                EndBtn.IsEnabled = true;

               // String morseName = MorseName.Text;

                //String[,] morseSave = new String[100,100];

            }
            //File.WriteAllText(morseName, text);
            //while (exitLoop != true)
            //{

            //}

        }

        private void LoadMorseBtn_Clicked(object sender, EventArgs e)
        {

        }

        private void PlayMorseBtn_Clicked(object sender, EventArgs e)
        {

        }

        private void OBtn_Clicked(object sender, EventArgs e)
        {

        }

        private void LBtn_Clicked(object sender, EventArgs e)
        {

        }

        private void SBtn_Clicked(object sender, EventArgs e)
        {

        }

        private void EndBtn_Clicked(object sender, EventArgs e)
        {

        }

    }
}

【问题讨论】:

  • 你的问题不是很清楚。当单击不同的按钮时,您期望会发生什么?您使用的名称 - 0Btn、LBtn 等 - 不是很具描述性。但一般来说,您可能希望您的数据在类级别声明,而不是本地到单个方法。
  • Obtn 用于 .在摩尔斯电码中,Lbtn 代表 - 在摩尔斯电码中,而 Sbtn 代表空格。

标签: c# xamarin methods flashlight


【解决方案1】:

首先,在类级别(在单个方法之外)声明数据,以便可以从整个类中访问它

string morseData = string.Empty;

然后让您的不同按钮方法更新数据

private void OBtn_Clicked(object sender, EventArgs e)
{
  morseData += ".";
}

private void LBtn_Clicked(object sender, EventArgs e)
{
  moreseData += "-";
}

【讨论】:

  • 我不确定我的逻辑是否会以这种方式工作,因为我不知道如何让数组将按钮点击接收到文本文件中。我试图用这段代码做的是让用户选择输入莫尔斯电码,然后当他们点击播放时,它会在闪烁中执行相当于莫尔斯电码的操作。
  • 只需将点/破折号字符串读/写到文本文件中。这没有什么复杂的。
  • 但是我应该使用数组来读取它们吗?就像我无法理解如何将读取实现到数组中一样。 (对不起,深入的问题,这是一个没有老师教的模块的大学项目,这值得 70%)
  • 字符串在技术上只是一个字节数组。如果您需要存储的只是“-”和“.”的序列,我看不出使用数组有什么特别的好处
  • 好的,那我就离开数组了,但是每次有人按新的莫尔斯电码时我能创建一个新文件吗?这样我就可以保存它们并调用它们以备后用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
  • 2011-11-08
相关资源
最近更新 更多