相关疑难解决方法(0)

长期存在的错误编程假设

我正在研究初级(也许是高级)软件工程师的常见错误和不良假设.

你最久以来最终纠正的假设是什么?

例如,我误解了整数的大小不是标准,而是取决于语言和目标.国家有点尴尬,但确实如此.

坦率地说; 你有什么坚定的信念,大致你维持这个假设多久了?它可以是关于编程,编程语言或计算机科学的算法,语言,编程概念,测试或其他任何内容.

methodology

281
推荐指数
90
解决办法
3万
查看次数

C#私有成员可见性

我们的商业模式中有一个学生班.令我感到奇怪的是,如果我们操纵另一名学生的一名学生,学生的私人成员是可见的...这让我觉得有点不雅:)

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

         Student s1 = new Student();
         Student s2 = new Student();

         s1.ExamineStudentsMembers(s2);
      }
   }

   public class Student {

      private String _studentsPrivateMember;

      public Student() {
         _studentsPrivateMember = DateTime.Now.Ticks.ToString();
      }

      public void ExamineStudentsMembers(Student anotherStudent) {
         //this seems very wrong
         Console.WriteLine(anotherStudent._studentsPrivateMember);
      }
   }
Run Code Online (Sandbox Code Playgroud)

我可以对设计考虑因素/含义有所了解吗?您似乎无法隐藏兄弟姐妹的信息.有没有办法将字段或成员标记为对同一类的其他实例隐藏?

c# private-members

13
推荐指数
3
解决办法
4647
查看次数

为什么可以调用受保护的或私有的CSharp方法/变量?

可能重复:
为什么私有字段对该类型是私有的,而不是实例?

考虑以下课程:

public class Test
{
    protected string name;
    private DateTime dateTime;

    public Test(string name)
    {
        this.name = name;
        this.dateTime = DateTime.Now;
    }

    public Test(Test otherObject)
    {
        this.name = otherObject.name;
        this.dateTime = otherObject.GetDateTime();
    }

    private DateTime GetDateTime()
    {
        return dateTime;
    }

    public override string ToString()
    {
        return name + ":" + dateTime.Ticks.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的构造函数中,我正在调用私有受保护的东西otherObject.为什么这可能?我一直认为私有是真的私有(暗示只有对象可以调用该方法/变量)或受保护(只能通过重载访问).

为什么以及何时需要使用这样的功能?

我缺少一些OO逻辑/原理吗?

.net c#

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

标签 统计

c# ×2

.net ×1

methodology ×1

private-members ×1