小编Ric*_*ore的帖子

OO设计,在私有方法或访问成员变量之间传递参数?

说我有以下课程:

class MyClass
{
    private int memberVar;

    public MyClass(int passedInVar)
    {
        memberVar = passedInVar;       
    }
}
Run Code Online (Sandbox Code Playgroud)

在构造函数中,传入一个int并将其分配给私有成员变量.

我的问题是,最好是在类的私有方法之间传递int变量,还是不将int变量作为参数传递,而是让每个私有方法直接访问private membervar?

即这是(例A):

class MyClass
{
    private int memberVar;

    public MyClass(int passedInVar)
    {
        memberVar = passedInVar;       
    }

    public MyPublicMethod()
    {
        MyPrivateMethod(memberVar);
    }

    public MyPrivateMethod(int variable)
    {
        // Do something with passed in variable...
    }
}
Run Code Online (Sandbox Code Playgroud)

比这更好(例B):

class MyClass
{
    private int memberVar;

    public MyClass(int passedInVar)
    {
        memberVar = passedInVar;       
    }

    public MyPublicMethod()
    {
        MyPrivateMethod();
    }

    public MyPrivateMethod()
    {
        // Do something with memberVar... …
Run Code Online (Sandbox Code Playgroud)

c# oop

9
推荐指数
2
解决办法
3178
查看次数

枚举的使用不符合 CLS

我在 ac# 类库中有以下代码...

public static class foo
{
    public enum bar
    {
        bsNone = -1,
        bsSolid = 0,
        bsDash = 1  
    }
}
Run Code Online (Sandbox Code Playgroud)

在 VB.Net Winforms 应用程序中,我引用枚举作为属性的返回类型:

Private _LeftBorderStyle As foo.bar
Public Property LeftBorderStyle() As foo.bar
    Get
        Return _LeftBorderStyle
    End Get
    Set(ByVal value As foo.bar)            
        _LeftBorderStyle = value
    End Set
End Property
Run Code Online (Sandbox Code Playgroud)

当我构建 VB.Net 项目时,我收到以下警告:

Return type of function 'LeftBorderStyle' is not CLS-compliant.
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么枚举不符合 CLS 吗?

c# vb.net enums cls-compliant

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

重新加载 Web 项目时,Visual Studio 2019 值不在预期范围内

我刚刚升级到 VS2019 Pro。我正在设置新的解决方案过滤器功能,以允许我仅使用我正在处理的项目的依赖项部分加载我的解决方案,并在加载(或重新加载)ASP.Net MVC Web 项目时遇到问题。

见这里:https : //youtu.be/u5YauFxb2Ho?t=783

我所做的是关闭我的解决方案,然后转到新的起始页并选择打开项目或解决方案。

然后浏览到解决方案的 *.sln 文件并勾选“不加载项目”复选框,以便打开解决方案但不加载任何项目。

当我右键单击 Web 项目并选择“重新加载项目”时,出现“值不在预期范围内”错误。

visual-studio visual-studio-2019

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

如何分支我的Visual Studio Online(TFS)解决方案?

我在Visual Studio 2015中有一个相当复杂的解决方案.它的源代码使用Visual Studio Online控制,TFS作为源代码控制机制.

结构如下:

DefaultCollection
    Team Project Root
        |
        ----Web Apps Folder
              |
              ----Web Application 1
                    |
                    ----WebApplication1.csproj
              |
              ----Web Service 1
              |
              ----Web Service 2
        |
        ----Winforms Folder
              |
              ----Winforms App 1
              |
              ----Winforms App 2
        |
        ----Common Files Folder
        MySolution.sln
Run Code Online (Sandbox Code Playgroud)

MySolution.sln位于Team Project Root中,该解决方案包含其中的所有各种应用程序,这些应用程序是Web应用程序,Web服务和Windows应用程序的混合体.

我遇到的问题是我不熟悉分支,我想分支整个解决方案,但我认为我的SLN文件在root中的方式会让这很困难吗?

我需要的是让Web应用程序1分支,我知道我可以分支Web应用程序1.但是为了运行它,我需要创建一个新的解决方案文件来包含它,这会搞砸.

有没有办法可以从这个场景中分支整个解决方案,还是我必须尝试以某种方式重新构造事物?

tfs tfs2013 visual-studio-2015 azure-devops

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

VS2017 无法添加对共享项目的引用/共享项目为空

我刚刚遇到这种情况,我想我会分享它,以防它为您节省一些时间。

我在 VS2017 中有一个相当大的解决方案,并且有一个共享项目,其中包含一些通用代码,例如枚举。

我只是尝试将我的共享项目添加到另一个项目(右键单击项目,添加引用并转到共享项目部分)并注意到共享项目是空的。它没有给我共享项目作为一个选项。

看我下面的回答...

c# vb.net visual-studio shared-project

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