का कारण बनता है मैंने कुछ दिन पहले सी # के साथ प्रोग्रामिंग शुरू की थी।ऑपरेटर अधिभार एक स्टैक ओवरफ़्लो
अब ऑपरेटर अधिभार के साथ खेलते समय एक भ्रमित त्रुटि उत्पन्न हुई।
using System;
namespace OperatorOverloading
{
public class Operators
{
// Properties
public string text
{
get
{
return text;
}
set
{
if(value != null)
text = value;
else
text = "";
}
}
// Constructors
public Operators() : this("")
{
}
public Operators(string text)
{
// Use "set" property.
this.text = text;
}
// Methods
public override string ToString()
{
return text;
}
// Operator Overloading
public static string operator +(Operators lhs, Operators rhs)
{
// Uses properties of the passed arguments.
return lhs.text + rhs.text;
}
public static void Main(string[] args)
{
Operators o1 = new Operators();
Operators o2 = new Operators("a");
Operators o3 = new Operators("b");
Console.WriteLine("o1: " + o1);
Console.WriteLine("o2: " + o2);
Console.WriteLine("o3: " + o3);
Console.WriteLine();
Console.WriteLine("o1 + o2: " + (o1 + o2));
Console.WriteLine("o2 + o3: " + (o2 + o3));
}
}
}
मैं पुस्तक "माइक्रोसॉफ्ट विजुअल C# 2008" डिर्क लुइस और Shinja से अधिक भार से operater के बारे में अध्याय को पढ़ने के बाद एक अपना उदाहरण देते लिखने का प्रयास किया:
निम्नलिखित कोड एक StackOverflowException जब चल रहा है का उत्पादन Strasser।
शायद किसी के पास कोई संकेत है कि क्या गलत हो रहा है।
धन्यवाद।
त्रुटि कहां होती है? –
आपका मुख्य ऑपरेटर क्लास के अंदर है, क्या आप उद्देश्य पर कुछ करना चाहते हैं? –
बस उत्सुक ... क्यों स्वीकार्य उत्तर मेरा उत्सुक गीक से बदलता है? सामान्य नियम पहले उत्तर को चिह्नित करना है जो एक कार्य समाधान को स्वीकार किए जाते हैं। –