Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Come si realizza il seguente tipo di proprietà Vb.NET in C#

    Ho la seguente proprietà in una classe scritta in Vb.Net

    Dim _c(8, 8) As Casella


    Public Property c(ByVal riga As Short, ByVal colonna As Short) As Casella
    Get
    Return _c(riga, colonna)
    End Get
    Set(ByVal value As Casella)
    _c(riga, colonna) = value
    End Set
    End Property

    Come si fa a trasformare in c#??

    Visto ch nel modo seguente:

    casella[,] c=new casella[8,8];

    public casella(short x,short y)
    {
    get{return c[x,y]}
    set{c[x,y]=value}
    }

    e sbagliato!!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Si crea in questo modo

    codice:
        public class Dummy
        {
            // ...
            public Casella this[short x, short y]
            {
                get
                {
                    return c[x, y];
                }
                set
                {
                    c[x, y] = value;
                }
            }
        }
    In sostanza, si tratta della proprietà indicizzata che ti consente di scrivere, ad esempio, questo codice suppondendo che objDummy sia un'istanza della classe Dummy sopra riportata:

    codice:
      objDummy[x, y] = someValue;
    Per creare delle proprietà indicizzate in C#, puoi creare delle classi che fungano da "indicizzatori", lavorando come indicato sopra, e fare in modo che le singole proprietà da indicizzare restituiscano un'istanza della classe per l'indicizzazione.

    E' più difficile da spiegare che da fare...

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Grazie per la spiegazione
    Vorrei tanto capire per quale motivo gli sviluppatori del linguaggio c# non abbiano incluso la creazione delle proprietà indicizzate nel linguaggio!!(senza ricorrere a questi accorgimenti)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da gigi90
    Vorrei tanto capire per quale motivo gli sviluppatori del linguaggio c# non abbiano incluso la creazione delle proprietà indicizzate nel linguaggio!!(senza ricorrere a questi accorgimenti)
    Il linguaggio VB.NET estremizza la produttività, mentre il linguaggio C#, in generale, tende a mantenere più rigida la strutturazione delle classi; nel caso in esame, è possibile che si tratti di una scelta fatta per assonanza con Java, a cui C# somiglia molto (anche per consentire la migrazione di utenti) ma probabilmente si cerca di incentivare l'uso di "classi di indicizzazione", come ti ho detto, per separare il codice che svolge questo tipo di funzioni.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.