小编Ken*_*Ken的帖子

正确编码直接访问属性 C# 的支持字段

我看过一些代码并认为它​​似乎有问题,所以我想知道它是否可以用于良好的编码,我的第一个想法是不。

考虑:

class MyClass
{
    private string m_MySuperString;
    public string MySuperString
    {
        get { return m_MySuperString; }
        set { m_MySuperString = value; }
    }

    public void MyMethod()
    {
        if (blah != yada)
        {
             m_MySuperString = badabing;
        }
    }

    public void MyOtherMethod()
    {
        if (blah == yada)
        {
            m_MySuperString = badaboom;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这种对支持字段的直接访问是一种可以接受的做法还是糟糕的编码 - 或者我应该问一下属性访问器的意义是什么,如果这是在具有公共成员的类中内部完成的,则访问被多个允许组件 - 是否可能发生崩溃 - 我会在多线程应用程序中冒险应该会发生崩溃。

请问有什么想法吗?我已经看过这个关于 SO 和其他人的链接> 为什么使用私有成员然后使用公共属性来设置它们?

编辑

让我说清楚,因为提供了很好的信息,而不是直接回复所有答案和评论。我不是在问属性的用途,也不是我是否可以执行自动实现的属性、私有设置器、OnValueChange 通知、属性逻辑。我的问题是关于直接访问该支持字段 - 例如,如果您说的是多线程场景 - 不是 getter/setter 同步锁的全部重点 - 控制对 backingfield 的访问?在这种情况下,这种代码是否可以接受 - …

c# standards coding-style properties

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

将Bonobo Git服务器与VS 2015社区版集成

我正在使用Visual Studio Community Edition(本地开发计算机),我有一个Bonobo Git Server设置并在一台单独的机器上运行.我试图通过Visual Studio连接到服务器 - 但在某个地方我失败了.VS2015有本地Git - 但我的Bonobo Git服务器位于我们域中的本地实例服务器上.我如何指向VS2015 Connections,我正在寻找在线扩展,但到目前为止,我绘制了在本地开发机器上工作的空白和组件.请继续关注这个问题 - 我不想要团队服务器我,我不想要github; 我正在寻找我的问题的答案,而不是其他一些服务或其他一些东西.

git version-control visual-studio

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

如何向绑定源添加新行

我正在尝试以编程方式向绑定源添加新行。我知道调用 bsSource.AddNew() 添加一个新行,我将其转换为 DataRowView 并设置我的值。我的问题是 - DataRowView.Row 显示 RowState 为 detached。我不希望它被分离;我相信它应该显示已添加 - 我也不希望它提交对数据库的更改(有一个非常有效的理由)。我想稍后选择时间。我的代码如下:

private Sub AddToRelationSource(binID As Integer, gradeID As Integer, IsChecked As Boolean)
            Dim drv As DataRowView = DirectCast(bsBinGrades.AddNew(), DataRowView)


            drv.Row("IsSelected") = IsChecked
            drv.Row("BinID") = binID
            drv.Row("GradeID") = gradeID
    ' I tried drv.EmdEdit(0 drv.Row.EndEdit() - Row State still shows detached

End Sub
Run Code Online (Sandbox Code Playgroud)

vb.net datarowview datarow bindingsource

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

实体框架相关表获取和保存数据

我一直在NETSO中寻找一些答案 - 我对实体框架几乎是一个菜鸟..所以我对相关实体确实有一些困惑..我正在使用 C# , Winforms , Linq , EF6^ (生成的反向数据库类在 DAL 项目中)

我很难解决这个问题。我有 3 个表,它们与第四个表相关 - 第 4 个表使用其他 3 个表中的 PK_ID 列 - 配置为外键,它们还组成了复合键(主键)。

我的粗略 ER 图。

ER图

我需要在 EF 查询中做的是获取多个列以将数据绑定绑定到列表视图。

我想要的列是 EnumerationCode、Part.Number、Part.Description。

我将使用 ProdID (我将 Products 绑定到 DropDown )作为这些附加值的 getter。

所以基本上我想到了这一点 Select From TernaryTable T Join EnumID on ENumTable.EnumID where T.ProdID = myProdID order by EnumCode [Join this to Select Part.Number, Part.Description From PartID = TernaryTable.PartID )

我认为可能有一个简单的解决方案来获取这些数据,然后如何保存对数据的任何更改 - 但正如我所说,我迷失了。

我需要两种方法,一种是获取数据,另一种是保存数据发生的任何更改。

我读过这个

使用 Linq …

c# linq entity-framework relationship winforms

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

PowerShell错误“在该系统上禁用了脚本的执行。”

我有一个运行的Power Shell脚本来停止服务,“停止/终止进程”,删除2个文件然后重新启动。

我可以在Windows 10 64位主机上完美运行此脚本-出现零问题。我尝试在我的虚拟机中运行它,但出现错误

无法加载,因为此系统上禁用了运行脚本。有关更多信息,请参阅https://go.microsoft.com/fwlink/?LinkID=135170上的about_Execution_Policies。

因此,只是为了咯咯笑,我去看了我的组策略,但它们都没有在两台计算机上配置。

管理模板> Windows组件>未配置Windows PowerShell。

那么,为什么在虚拟机上而不是在主机上出现问题?

编辑 Ran的Get-ExecutionPolicy以及VM受限的Get-ExecutionPolicy-List

MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined
Run Code Online (Sandbox Code Playgroud)

在我的主机上运行

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted
Run Code Online (Sandbox Code Playgroud)

组策略屏幕截图

我不知道如何更改本地计算机-软件安装?

powershell

0
推荐指数
6
解决办法
3257
查看次数