Tôi muốn để có thể viết phương pháp khuyến nông vì vậy mà tôi có thể nói:Làm cách nào để có phương pháp mở rộng thay đổi đối tượng gốc?
lines.ForceSpaceGroupsToBeTabs();
thay vì:
lines = lines.ForceSpaceGroupsToBeTabs();
Tuy nhiên, đoạn mã sau hiện kết quả đầu ra:
....one
........two
thay vì:
Tone
TTtwo
gì làm tôi phải thay đổi trong các mã sau đây để làm cho nó ra:
Tone
TTtwo
(lưu ý rằng đối tầm nhìn, . = space, T = \t
):
using System;
using System.Collections.Generic;
namespace TestExtended82343
{
class Program
{
static void Main(string[] args)
{
List<string> lines = new List<string>();
lines.Add("....one");
lines.Add("........two");
lines.ForceSpaceGroupsToBeTabs();
lines.ForEach(l => Console.WriteLine(l));
Console.ReadLine();
}
}
public static class Helpers
{
public static void ForceSpaceGroupsToBeTabs(this List<string> originalLines)
{
string spaceGroup = new String('.', 4);
List<string> lines = new List<string>();
foreach (var originalLine in originalLines)
{
lines.Add(originalLine.Replace(spaceGroup, "T"));
}
originalLines = lines;
}
}
}
Thật vậy. Bạn không thể chuyển đối tượng được tham chiếu "mở rộng", nhưng bạn có thể thay đổi nội dung của một người –