MyString类中的c#重写运算符返回相同的对象

MyString类中的c#重写运算符返回相同的对象,c#,string,overriding,C#,String,Overriding,我想重写MyString类的--operator。它应该在字符串中找到最短的单词。以下是代码: class MyString { private string data; public string Data { get { return data; } set { data = value; } } public MyString(string s) { Data = s; }

我想重写MyString类的--operator。它应该在字符串中找到最短的单词。以下是代码:

class MyString
{
    private string data;
    public string Data
    {
        get { return data; }
        set { data = value; }
    }

    public MyString(string s)
    {
        Data = s;
    }

    public MyString(MyString s)
    {
        Data = s.Data;
    }

    public static MyString operator --(MyString s)
    {
        var words = s.Data.Split();
        int l = 99999, ind = 0;
        for (int i = 0; i < words.Length; i++)
        {
            if (words[i].Length < l)
            {
                ind = i;
                l = words[i].Length;
            }
        }
        MyString result = new MyString(words[ind]);
        return result;
    }
}
它返回“一二三”而不是“一”。我怎样才能修好它

var x = foo--;
是后减量,即类似于:

var x = foo;
foo--;
foo--;
var x = foo;
您可能需要预减量,即

var x = --foo;
这类似于:

var x = foo;
foo--;
foo--;
var x = foo;
无论哪种方式:它都会不适当地更改
foo
,这可能是您不想要的。如果您这样做:

shortest = --s1;
Console.WriteLine(shortest.Data);
Console.WriteLine(s1.Data);
您将看到
s1.Data
现在也是
“一”

相反,我建议:

shortest = s1.GetShortestWord();
Console.WriteLine(shortest.Data);
是后减量,即类似于:

var x = foo;
foo--;
foo--;
var x = foo;
您可能需要预减量,即

var x = --foo;
这类似于:

var x = foo;
foo--;
foo--;
var x = foo;
无论哪种方式:它都会不适当地更改
foo
,这可能是您不想要的。如果您这样做:

shortest = --s1;
Console.WriteLine(shortest.Data);
Console.WriteLine(s1.Data);
您将看到
s1.Data
现在也是
“一”

相反,我建议:

shortest = s1.GetShortestWord();
Console.WriteLine(shortest.Data);

这是一个可怕的使用
--
操作符,顺便说一句,上帝的爱,不要这样做。为什么会有人知道使用与你想让它做什么无关的操作符?另外,如果您的目标是“查找字符串中最短的单词”,请编写一个名为
findtheshortword()
的方法,并使用我知道但任务要求使用的方法it@st_dec如果学校给了你这个任务,把你的钱拿回来。这是
--
接线员的可怕用法,顺便说一句,上帝的爱,不要这样做。为什么会有人知道使用与你想让它做什么无关的操作符?另外,如果您的目标是“查找字符串中最短的单词”,请编写一个名为
findtheshortword()
的方法,并使用我知道但任务要求使用的方法it@st_dec如果学校给你这个任务,把你的钱拿回来。