C # создать экземпляр - PullRequest
0 голосов
/ 20 июля 2011

плохо знаком с C #, так что это только я догадываюсь об этом после прочтения некоторых тутироал.

У меня есть класс с именем PS3RemoteDevice:

namespace PS3_BluMote
{
   public class PS3RemoteDevice
   {

И из моей основной кнопки формы я пытаюсь сделать это:

PS3RemoteDevice PS3R = new PS3RemoteDevice;
PS3R.Connect();

Но, конечно, это не похоже на работу. Небольшая помощь, так как я нуб, было бы здорово!

Спасибо!

David

PS3RemoteDevice.cs code

using System;
using System.Collections.Generic;
using System.Timers;
using HIDLibrary;

namespace PS3_BluMote
   {
      public class PS3RemoteDevice
      {
        public event EventHandler<ButtonData> ButtonAction;
        public event EventHandler<EventArgs> Connected;
        public event EventHandler<EventArgs> Disconnected;

        private HidDevice HidRemote;
        private Timer TimerFindRemote;
        private Timer TimerHibernation;

        private int _vendorID = 0x054c;
        private int _productID = 0x0306;
        private int _batteryLife = 100;
        private bool _hibernationEnabled = false;


    public PS3RemoteDevice(int VendorID, int ProductID, bool HibernationEnabled)
    {
        if (HibernationEnabled)
        {
            TimerHibernation = new Timer();
            TimerHibernation.Interval = 60000;
            TimerHibernation.Elapsed += new ElapsedEventHandler(TimerHibernation_Elapsed);
        }

        _vendorID = VendorID;
        _productID = ProductID;
        _hibernationEnabled = HibernationEnabled;
    }


    public void Connect()
    {
        if (!FindRemote())
        {
            StartRemoteFindTimer();
        }
    }

и т. Д. И т. Д. *

Ответы [ 4 ]

3 голосов
/ 20 июля 2011

try

PS3RemoteDevice PS3R = new PS3RemoteDevice();

EDIT (с параметрами):

PS3RemoteDevice PS3R = new PS3RemoteDevice(someVendorID, some ProductID, someBoolHibernationEnabled);
3 голосов
/ 20 июля 2011

Предполагая, что у вас есть оставшаяся часть кода класса,

PS3RemoteDevice PS3R = new PS3RemoteDevice(); будет работать с параграфами.

1 голос
/ 20 июля 2011

Когда вы создаете новый экземпляр объекта, вы вызываете его метод конструктора (для краткости конструктор).Это как любой другой метод, но требуется, чтобы вы вызывали его, если он определен.Синтаксис: new MyObject(... parameters here ...);.

Я просмотрел ваши предыдущие вопросы и нашел снимок экрана с кодом, который вы используете .У вас есть конструктор, который принимает параметры.Эти параметры не определены как необязательные, поэтому вы должны предоставить их.Это vendorId, productId и hibernationEnabled.

Так что ваш код будет new PS3RemoteDevice(0x054c, 0x0306, false);.Или, по крайней мере, так выглядели значения по умолчанию на скриншоте.Определите правильные значения для передачи, прочитав документы для кода, который вы используете.

1 голос
/ 20 июля 2011

Ваш класс имеет только конструктор, который принимает три параметра:

 public PS3RemoteDevice(int VendorID, int ProductID, bool HibernationEnabled) 
 { ... }

Как и при любом другом вызове метода, вам нужно передать эти параметры, когда вы создаете экземпляр объекта с помощью new, например:

int vendorId = 5;
int productId = 42;
PS3RemoteDevice PS3R = new PS3RemoteDevice(vendorId, productId, false);
...