小编stu*_*221的帖子

为类中的类的属性赋值

我有以下代码

class TopClass
{
    public string ClsProp1 { get; set; }
    public string ClsProp2 { get; set; }

    public SubClass ClsProp3 { get; set; }
}

class SubClass
{
    public string SCProp1 { get; set; }
    public string SCProp2 { get; set; }
}


class Program
{
    static void Main(string[] args)
    {

        Test.TopClass TCN = new Test.TopClass();

        TCN.ClsProp1 = "TCProp1--string value";
        TCN.ClsProp2 = "TCProp2--string value";
        TCN.ClsProp3.SCProp1 = "SCProp1--string value";
        TCN.ClsProp3.SCProp2 = "SCProp2--string value";

    }
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何实例化TCN.ClsProp3.ScProp1和TCN.ClsProp3.ScProp2值.我不断收到"Test.exe中发生类型'System.NullReferenceException'的未处理异常附加信息:对象引用未设置为对象的实例." 错误信息.原谅我的无知,我真的想从零开始学习OOP.

提前致谢

c# oop class

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

为什么我的Text :: CSV代码在打印时会在空格上拆分值?

我有以下代码使用Text::CSV:

#!/usr/bin/perl

package main;
use strict;
use warnings;
use Text::CSV;

my $csv = Text::CSV -> new ({ binary => 0, eol => $/ });
open my $io, "<", $file or die "$file: $!";

while (my $row = $csv -> getline ($io)) 
{
    my @fields = @$row;

    while(my $field = <@fields>) 
    {
        print $field."\n";
    }

}
Run Code Online (Sandbox Code Playgroud)

(改编自Text::CSV文件)

当我@fields在为其分配值后尝试遍历我的数组时@$row,它会分解空格上的值.例如

"FOO","BAR","IM FOO BAR'D"
Run Code Online (Sandbox Code Playgroud)

出来了

FOO
BAR
IM
FOO
BAR'D
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

csv perl

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

在c#中只读一个列表

我有这个示例代码.我想要做的是使"Nums"值只能使用"AddNum"方法写入.

namespace ConsoleApplication1
{
    public class Person
    {
        string myName = "N/A";
        int myAge = 0;
        List<int> _nums = new List<int>();

        public List<int> Nums
        {
            get
            {
                return _nums;
            }
        }

        public void AddNum(int NumToAdd)
        {

            _nums.Add(NumToAdd);
        }

        public string Name { get; set; }
        public int Age { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

不知怎的,我已经尝试了一些关于AsReadOnly()和readonly关键字的东西,但我似乎无法让它做我想做的事情.

以下是我必须访问该属性的代码示例.

Person p1 = new Person();
p1.Nums.Add(25); //access 1
p1.AddNum(37); //access 2

Console.WriteLine("press any key");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

我真的希望"访问1"失败,"访问2"是唯一可以设置值的方式.在此先感谢您的帮助.

c# class list readonly-collection

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

标签 统计

c# ×2

class ×2

csv ×1

list ×1

oop ×1

perl ×1

readonly-collection ×1