小编use*_*579的帖子

C# 向 T 类型的类数组添加扩展 Append 方法

使用这个问题的答案如何将字符串添加到 string[] 数组?没有 .Add 函数”我试图使用这个答案来编写一个通用扩展以将元素附加到 .Add 函数generic array。仅使用该Array.Resize()方法效果很好,下面的示例向我的string array

string[] array = new string[] { "Foo", "Bar" };
Array.Resize(ref array, array.Length + 1);
array[array.Length - 1] = "Baz";
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用下面描述的 ArrayExtension 方法时,该方法确实在方法内调整了数组的大小,但是当它返回时数组没有改变?

我的扩展课

public static class ArrayExtensions
{
    public static void Append<T>(this T[] array, T append)
    {
        Array.Resize(ref array, array.Length + 1);
        array[array.Length - 1] = append;    // < Adds an extra element to my array
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# arrays generics extension-methods append

1
推荐指数
1
解决办法
3918
查看次数

C#在构造函数中使用属性值创建新对象返回Null

Foo创建一个新的类对象时,构造函数应该根据对象属性创建一个新文件夹和一个新文件.但我明白了NullException (param: path2)吗?

我发现在调用构造函数时,对象属性具有Null值.但是我在创建对象时给出了属性值?我错过了什么?

我的Foo课程:

public class Foo
{
    public string Bar { get; set; }
    public string Baz { get; set; }
    public string Source { get { return Path.Combine(Qux, Baz, Bar); } }
    private string Qux { get { return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); } }

    public Foo()
    {
        // Use property values to find or create Directory and File
        if (!Directory.Exists(Path.Combine(Qux, Baz))) Directory.CreateDirectory(Path.Combine(Qux, Baz));
        if (!File.Exists(Source)) File.Create(Source);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的主课:

// Create a new Foo object …
Run Code Online (Sandbox Code Playgroud)

c# constructor properties object

0
推荐指数
1
解决办法
2441
查看次数