Member 13716305 Ответов: 2

Нужна помощь в отладке кода!


Я пытаюсь построить лазерную указку. Я следил за одним из видео Майкла Ривза и скопировал код точно так, как он его написал, но я получаю сообщение об ошибке. Сообщение гласит: "'Write' имеет два аргумента" я не уверен, как решить эту проблему. пожалуйста, помогите thnx!! (Ошибка находится в нижней части, где написано "Port.Write(String.Формат("X{0}Y{1}",

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace laser_pointer
{
    public partial class Form1 : Form
    {
        public Stopwatch watch { get; set; }

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            watch = Stopwatch.StartNew();
            Port.Open();
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            writeToPort(new Point(e.X, e.Y));
        }

        public void writeToPort(Point coordinates)
        {
            if (watch.ElapsedMilliseconds > 15)
            {
                watch = Stopwatch.StartNew();

                Port.Write(String.Format("X{0}Y{1}",
                (coordinates.X) / (Size.Width / 180)),
                (coordinates.Y / (Size.Height / 180)));
            }
        }
    }
}

2 Ответов

Рейтинг:
2

Jon McKee

Port.Write(String.Format("X{0}Y{1}",
                (coordinates.X) / (Size.Width / 180)),
                (coordinates.Y / (Size.Height / 180)));
//Break it up
string newString = String.Format(
  "X{0}Y{1}",
  (coordinates.X) / (Size.Width / 180)), //you have an extra )
  (coordinates.Y / (Size.Height / 180));
Port.Write(newString);

Удалите лишнее ")" при расчете ширины.


Рейтинг:
0

Patrice T

Решение 1 уже говорит вам, где находится проблема.
Вы должны использовать текстовый редактор программиста, у них есть функция, которая показывает соответствие скобок. С помощью этой функции просто переместите курсор в положение '(' of Port.Write( это показало бы вам, что закрывающий был не в том месте.

Профессиональные редакторы программистов имеют эту функцию и другие, такие как подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]


Richard Deeming

Так как код является C#, Код Visual Studio[^] также было бы хорошим выбором. :)

Patrice T

Я обязательно посмотрю