Rav*_*avi -4 c# extension-methods console-application
我正在尝试扩展C#List以使用Print功能.使用Console.WriteLine(a.Print())只显示部分输出,但a.Print2()正常工作,其中在a.Print我打电话返回类型为字符串,并以a.Print2我打电话用的功能的方法返回值无效.
using System;
using ExtensionMethods;
using System.Collections.Generic;
namespace ExtensionMethods
{
public static class ExtensionClass
{
public static int PlusFive(this int input)
{
return input + 5;
}
static public string Print(this List<int> input)
{
int i;
string output = "";
for (i = 0; i < input.Count - 1; i++)
{
output = input[i].ToString() + ", ";
}
output += input[i].ToString();
return output;
// Outputs 2, 3
}
static public void Print2(this List<int> input)
{
int i;
for (i = 0; i < input.Count - 1; i++)
{
Console.Write(input[i].ToString() + ", ");
}
Console.Write(input[i].ToString());
// Outputs 1, 2 ,3
}
}
}
namespace LearningCSharp
{
class Program
{
static void Main(string[] args)
{
List<int> a = new List<int>(){1, 2, 3};
// int b = 2;
Console.WriteLine(a.Print());
a.Print2();
}
}
}
Run Code Online (Sandbox Code Playgroud)
因为你的Print()方法被打破了.在循环中,您始终设置output为新字符串.你错过了加号:
static public string Print(this List<int> input)
{
int i;
string output = "";
for (i = 0; i < input.Count - 1; i++)
{
// missing plus here
output += input[i].ToString() + ", ";
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
但请注意,有更好的可能性来连接字符串.这里的一个解决方案是:
static public string Print(this List<int> input)
{
return string.Join(", ", input);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |