c # - Sådan sendes en liste fra en formular til en anden

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har to former i et Windows Forms-projekt: Form1 og aCurso.


Jeg forsøger at sende en liste med objekter af en klasse kaldet curso (jeg mener: List<curso>) fra Form1 til aCurso.


Men Visual Studio viser dette:



  Tilgængelighed inkonsekvens: Typen af ​​parameter List<curso> er mindre tilgængelig end metoden aCurso.aCurso(List<curso>).



Så her er koden fra Form1:


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;

namespace \_18\_05\_18
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        List<curso> cursos = new List<curso>();
        private void btnAC\_Click(object sender, EventArgs e)
        {
            Form f = new aCurso(cursos);
            f.Show();
        }
    }
}



Her er koden fra aCurso:


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;

namespace \_18\_05\_18
{
    public partial class aCurso : Form
    {
        List<curso> cursos = new List<curso>();
        public aCurso(List<curso> cursos)
        {
            InitializeComponent();
            this.cursos = cursos;
        }
    }
}



Her er koden fra klasse curso:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace \_18\_05\_18
{
    class curso
    {
        private string nombre;
        public curso(string nombre)
        {
            this.nombre = nombre;
        }
    }
}

Bedste reference


Du kan ikke udsætte en offentlig metode signatur, hvor nogle af parametertyperne af signaturen ikke er offentlige. Det ville ikke være muligt at kalde metoden udefra, da opkalderen ikke kunne konstruere de krævede parametre.


Alt du skal gøre er at gøre curso klasse offentlig


public class curso
{
    private string nombre;
    public curso(string nombre)
    {
        this.nombre = nombre;
    }
}