Avatar billede globen Nybegynder
07. oktober 2006 - 18:07 Der er 5 kommentarer og
1 løsning

Inconsistent accessibility

Jeg er nået til det punkt, hvor jeg skal have en brugerflade på min applikation.

Hver gang jeg tager en af mine objekter som parrameter i en metode eller konstruktør i en af mine Forms, får jeg i Visual Studio denne fejl:

"Inconsistent accessibility: parameter type '...' is less accesible than than method '...'"

Nogen der kan hjælpe? :D
Avatar billede nielle Nybegynder
07. oktober 2006 - 18:14 #1
Kan du give nogle eksempler?

Sandsynligvis er det nu nok fordi at ikke erklære dem for public.
Avatar billede globen Nybegynder
07. oktober 2006 - 18:35 #2
Min Form:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Dispense.Acquaintance;

namespace Dispense.Presentation
{
    public partial class MainForm : Form
    {
        public MainForm(IControlFacade control)
        {
            this.control = control;
            InitializeComponent();
            listTransactions.Columns.Add("Date", 60, HorizontalAlignment.Left);
            listTransactions.Columns.Add("Title", 200, HorizontalAlignment.Left);
            listTransactions.Columns.Add("Account", 150, HorizontalAlignment.Left);
            listTransactions.Columns.Add("Amount", 70, HorizontalAlignment.Right);
            listTransactions.Columns.Add("Balance", 76, HorizontalAlignment.Right);           
        }

        private IControlFacade control;
    }
}
--------

IControlFacade er et interface, som ligger i namespacet Dispense.Acquaintance. Klassen s (denne) konstruktør bliver kald af en klasse i samme namespace (Dispense.Presentation), som holder på en implementation af IControlFacade.
Avatar billede globen Nybegynder
07. oktober 2006 - 18:37 #3
Her er den klasse der kalder konstruktøren i MainForm:

using System;
using System.Collections.Generic;
using System.Text;
using Dispense.Acquaintance;
using Dispense.Utility;
using System.Windows.Forms;

namespace Dispense.Presentation
{
    class PresentationFacade
    {
        public PresentationFacade(IControlFacade controlFacade)
        {
            this.controlFacade = controlFacade;
            mainForm = new MainForm(controlFacade);
            Application.Run(mainForm);
        }

        private IControlFacade controlFacade;
        private MainForm mainForm;
    }
}

------

Som su kan se, får denne klasse samme parameter, men her forvolder det ingen problemer...
Avatar billede nielle Nybegynder
07. oktober 2006 - 18:41 #4
Prøv at sætte public foran "class PresentationFacade". Så vil du sikkert få samme compilefejl?
Avatar billede globen Nybegynder
07. oktober 2006 - 19:08 #5
Niiice... Det var det der gjorde det. Tak for det. Nu er jeg kørende igen...

Drop et svar :D
Avatar billede nielle Nybegynder
07. oktober 2006 - 19:09 #6
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester