Przeładowanie operatora przypisania jak ?

0

Chciałbym przeładować operator przypisania tak jak jest to w stringu += da sie tak ?

0

Czego tu nierozumiem pisze :
=, . , ?:, ->, new, is, as, sizeof These operators can't be overloaded

to jakim prawem do stringa można wpisać String alfa = "abc"; tzn. a jesli ja bym chciał odziedziczyć string i napisać własny operator = tak aby sprawdzał czy kod wpisywany do środka jest poprawny ... ???

0
nicka napisał(a)

Czego tu nierozumiem pisze :
=, . , ?:, ->, new, is, as, sizeof These operators can't be overloaded

to jakim prawem do stringa można wpisać String alfa = "abc";

Te operatory nie dotyczą konkretnej klasy. Być może są zaimplementowane poza nimi. Szczerze mówiąc nigdy się nad tym nie zastanawiałem nad tym a to bardzo ciekawe pytanie.

0
 
class mea
        {
            public string alfa;
        }
        mea operator=(mea a,mea b)
        {
        
        }

take coś nie działa :/

0

Wow, to w C# można robić funkcje poza klasami?
Skoro = nie da się przeciążyć, to pewnie = nie da się przeciążyć. Żyj z tym.

0

A po co chcesz przeładować ten operator ? W czym Ci to ma pomóc ?

0

Rozróżnijmy może niejawną konwersję od operatora i życie stanie się prostsze.

using System;

namespace MyStringTest
{
    class Program
    {
        static void Main(string[] args)
        {
            IntegerString s1 = new IntegerString("123");
            IntegerString s2 = "456";
            //IntegerString s3 = "ala ma kota"; //FormatException
            string t = s2;

            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.WriteLine(t);

            Console.ReadLine();
        }
    }

    class IntegerString
    {
        int value;

        public IntegerString(string str)
        {
            this.value = int.Parse(str);
        }

        public static implicit operator string(IntegerString str)
        {
            return str.value.ToString();
        }

        public static implicit operator IntegerString(string str)
        {
            return new IntegerString(str);
        }
    }
}

I co, nie da się?

0

dziękuje ślicznie :P o to chodziło .

1 użytkowników online, w tym zalogowanych: 0, gości: 1