使用访问修饰符后无法访问类属性?

时间:2017-08-31 10:32:30

标签: c#

我刚学习c#。并有学习书和一些在线教程和一些关于访问修饰符的博客文章。

当我尝试编写一些代码时,我正面临一些问题==>下面...

using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
public class Employees
{
    public int Id { get; set; }
    protected string Name { get; set; }
    public int Salary { get; set; }
    public int ServiceYear { get; set; }

    void CheckEmployeePromotion(List<Employees> employees)
    {
        foreach (var employee in employees)
        {
            if (employee.ServiceYear >= 5)
            {
                Console.WriteLine(employee.Name + " Promoted");
            }
        }
    }
}

public class nayan
{
    Employees hasan = new Employees();
    hasan.Id = 1;
}

public class anothereclass : Employees
{
    Employees n1 = new Employees();
    n1.Id = 2;
}


public class Program
{
    public static void Main(string[] args)
    {
        Employees jamal = new Employees();
        jamal.Id = 23;
    }
}
}
写完上面的代码编译器后给我看了一些错误。 compiler error

如果我可以在我的主类中创建Employees的实例并访问property.like - &gt;

 Employees jamal = new Employees();
 jamal.Id = 23;

然后我的问题为什么我无法访问其他类中的Employees属性(也是从Employees类继承的类)。我的问题是为什么而不是解决方案 ????

1 个答案:

答案 0 :(得分:4)

您只能在方法,构造函数或属性中设置实例的成员。所以我假设你想要这个:

id  event           timestamp  rank     duration
    <int>  <chr>              <dttm> <int>        <dbl>
1   43956  LOGIN 2017-03-27 09:19:29     1           NA
2   46640  LOGIN 2016-06-10 00:09:08     1           NA
3   71548  LOGIN 2016-01-27 12:00:25     1           NA
4   71548 LOGOUT 2016-06-20 11:35:44     1 208715.31667
5   71548  LOGIN 2016-06-20 11:34:29     2           NA
6   72029  LOGIN 2016-12-28 10:43:25     1           NA
7   72029 LOGOUT 2016-12-28 10:56:30     1     13.08333
8   74558  LOGIN 2016-10-15 15:08:39     1           NA
9   74558 LOGOUT 2016-10-15 15:10:06     1      1.45000
10 100596  LOGIN 2016-03-09 14:30:48     1           NA
11 100596 LOGOUT 2016-03-09 14:31:10     1     22.00000

还要考虑命名约定,这是命名类 PascalCase