小编Mar*_*ell的帖子

什么时候应该使用字段而不是属性?

当你使用一个字段以及何时在课堂设计中使用一个属性时,任何人都能清楚地表达出来吗?

考虑:

public string Name;
Run Code Online (Sandbox Code Playgroud)

要么:

private string _Name;
public string Name
{
   get { return _Name; }
   set { _Name = value; }
}
Run Code Online (Sandbox Code Playgroud)

我意识到第二种方法更加合适和灵活,所以我通常会尝试使用它.

但那为什么我看到人们使用第一种方法呢?他们只是懒惰,还是有一些特定的情况,这是正确的选择?这只是一个偏好问题吗?

c# theory

10
推荐指数
2
解决办法
1724
查看次数

Python:创建动态函数

我有问题我想创建动态函数,它将根据从数据库中检索的值进行一些计算,我很清楚我的内部计算但是如何创建动态类的问题:

我的结构是这样的:

class xyz:

    def Project():

       start = 2011-01-03

       def Phase1():
          effort = '2d'
       def Phase2():
          effort = '3d'
       def Phase3():
          effort = '4d'
Run Code Online (Sandbox Code Playgroud)

现在想要动态生成所有PhaseX()函数,所以任何人都可以建议我如何使用Python代码实现这样的功能

等待积极回复问候谢谢

python

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

LINQ:基于子列表中的属性进行分组

我试图使用LINQ基于元数据创建文档的分组列表,元数据是文档上的列表.

以下是我的对象结构的外观:

List<Document>
         --> List<Metadata>
                      --> Metadata has a name and a value property.
Run Code Online (Sandbox Code Playgroud)

我想基于具有名称:ID的元数据标签对文档进行分组,并将它们分组,其中ID属性的值相同.

我试过这样的:

var x = response.Document
         .GroupBy(d => d.Metadata.Where(dc => dc.Name == DocProperty.ID)
         .Select(dc => dc.Value));
Run Code Online (Sandbox Code Playgroud)

这会生成单个文档的列表,但不会对ID进行分组.

还考虑选择不同的ID列表,然后遍历文档列表并查找与ID匹配的文档.这似乎是一个很大的开销,因为对于不同列表中的每个ID,我必须每次进入元数据列表并找到文档并且必须对找到的多个项目进行额外检查,获取我需要的属性等.

任何人都知道如何使这个东西工作?

.net c# linq grouping

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

XP/SCRUM有多大?

在规划新系统开发的最初阶段,遵循哪种开发模式似乎是最重要的.我一直坚信经典瀑布(或混合瀑布/迭代原型)是中型到大型项目的最佳方法.似乎一旦项目达到一定规模,Agile/XP/Scrum范例就无法解决复杂的需求,庞大的团队,多个子系统之间的复杂性,文档需求,人员变动等等,等等

在系统规模,团队规模,LOC等方面,这种敏捷方法的限制是什么?

architecture agile scrum process

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

Reflection.Emit - 从堆栈访问最顶层但只有一个项目

在.NET中有没有办法使用Reflection.Emit,从堆栈中访问最顶层的项目?因此,如果A是最顶层,B则是下一个 - 我想处理B然后是A.将B复制到A 之上是可以的(因为当我到达时它可以简单地"弹出"第二个B).

目前,我宣布当地人:

    LocalBuilder loc = il.DeclareLocal(typeof(Foo));
    il.Emit(OpCodes.Stloc, loc); // store and pop topmost stack item
    // work with (pop) previous stack item 
    il.Emit(OpCodes.Ldloc, loc); // push old topmost stack item
Run Code Online (Sandbox Code Playgroud)

是否存在不需要显式本地的路由?

.net reflection.emit

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

将矩阵转换为沿其对角线的矢量

我不是一个程序员,我只需要在matlab中以数字方式解决问题.我需要一个函数来对任何方阵进行以下转换:

row 1: 1 2 3 
row 2: 4 5 6
row 3: 7 8 9
Run Code Online (Sandbox Code Playgroud)

1 4 2 7 5 3 8 6 9
Run Code Online (Sandbox Code Playgroud)

即从左到右依次沿着对角线在矢量中写入矩阵.有什么想法吗?


我真的需要一些帮助:

假设我们已经转换为向量的矩阵具有由M(i,j)表示的条目,其中i是行和j列.现在我需要能够从向量中的位置找出矩阵中的原始位置,即如果它在向量中的第3个条目,我需要一个能给我i = 1 j = 2的函数.有什么想法吗?我真的坚持这个:(谢谢

algorithm matlab transform matrix

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

Protobuf错误:协议消息标记的线路类型无效

尝试在java中读取消息时出现以下错误

Exception in thread "main" com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.
    at com.google.protobuf.InvalidProtocolBufferException.invalidWireType(InvalidProtocolBufferException.java:78)
    at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(UnknownFieldSet.java:498)
    at com.google.protobuf.GeneratedMessage$Builder.parseUnknownField(GeneratedMessage.java:438)

FileInputStream fis = new FileInputStream("F:/Newfolder/sample_message.txt");
Nt nlc = Nt.parseFrom(fis);

if(nlc.hasMessageId())
{
    System.out.println("MessageId: "+nta2sse.getMessageId());
}
Run Code Online (Sandbox Code Playgroud)

我正在接受例外 if(nlc.hasMessageId())


这是完整的堆栈跟踪.

Exception in thread "main" com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.
    at com.google.protobuf.InvalidProtocolBufferException.invalidWireType(InvalidProtocolBufferException.java:78)
    at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(UnknownFieldSet.java:498)
    at com.google.protobuf.GeneratedMessage$Builder.parseUnknownField(GeneratedMessage.java:438)
    at com.soeasy.aanta.nta.sse.NtaSse$Nta2Sse$Builder.mergeFrom(NtaSse.java:523)
    at com.soeasy.aanta.nta.sse.NtaSse$Nta2Sse$Builder.mergeFrom(NtaSse.java:1)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:1)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:212)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:746)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:1)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:282)
    at com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:760)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:288)
    at com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:752)
    at com.soeasy.aanta.nta.sse.NtaSse$Nta2Sse.parseDelimitedFrom(NtaSse.java:338)
    at com.soeasy.aanta.nta.sse.NtaSseServer.main(NtaSseServer.java:60)
Run Code Online (Sandbox Code Playgroud)

并且示例_message.txt具有以下内容:

message_id: …
Run Code Online (Sandbox Code Playgroud)

java protocol-buffers

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

为EF提供动态自定义数据库提供程序

作为分析工具的一部分,我有一个自定义ADO.NET堆栈,它充当标准ADO.NET的"装饰器",因此它实际上不做任何工作 - 它只是传递调用(但是使用日志记录等) ).除此之外,我提供了一个DbProviderFactory来自我的自定义连接,它实现IServiceProvider并提供自定义DbProviderServices.

这适用于大多数工具,包括LINQ-to-SQL - 然而,Entity Framework并不满意.

例如 - 说我有:

MetadataWorkspace workspace = new MetadataWorkspace(
     new string[] { "res://*/" }, 
     new Assembly[] { Assembly.GetExecutingAssembly() });
using(var conn = /* my custom wrapped DbConnection */)
{
    var provider = DbProviderServices
          .GetProviderServices(conn); // returns my custom DbProviderServices
    var factory = DbProviderServices
          .GetProviderFactory(conn); // returns my custom DbProviderFactory
    ...
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好 - 以上两条线都有效; 返回正确的(自定义)提供程序信息.

现在我们可以添加一个EF模型:

    using (var ec = new EntityConnection(workspace,conn))
    using (var model = new …
Run Code Online (Sandbox Code Playgroud)

.net provider ado.net entity-framework

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

为什么.NET运行时将下划线添加到我的字符串?

我将我的应用程序设置存储在C#way(Properties.Settings.Default.Save();)中.然后,设置由C#运行时存储在文件夹中:

C:\Users\UserName\AppData\Local\My_Company_Name
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我在Visual Studio([assembly: AssemblyCompany("My Company Name")])中输入了"我的公司名称"作为公司属性.

那么,下划线来自何处?我见过的其他应用程序创建文件夹空白...

.net c# settings

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

如何在Entity Framework中指定索引提示?

SQL

select * from table1 with(index=IX_table1_1)
Run Code Online (Sandbox Code Playgroud)

Linq to sql使用ado.net实体想写上面的代码.我特别找不到实体,使用索引.

LINQ

var querysample = from a in db.table1
select a;
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server entity-framework c#-4.0

9
推荐指数
4
解决办法
6014
查看次数