问题列表 - 第41894页

需要抽象对象集合(C#)

在下面的简化示例中,我需要在这样的方式的抽象集合类PrintFruitsAndEaters(oranges, orangeEaters);PrintFruitsAndEaters(apples, appleEaters); 成为可能:

abstract class Fruit
abstract class FruitEater

class Apple : Fruit
class AppleEater : FruitEater
class Orange : Fruit
class OrangeEater : FruitEater

class AppleCollection : List<Apple>
class OrangeCollection : List<Orange>
class AppleEaterCollection : List<AppleEater>
class OrangeEaterCollection : List<OrangeEater>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过模板化方法和集合类,但我需要访问特定于Fruit和FruitEater类的方法:

class FruitCollection<T> : List<T>
class FruitEaterCollection<T> : List<T>

void PrintFruitsAndEaters<T, S>(FruitCollection<T> fruits, FruitEaterCollection<S> eaters)
Run Code Online (Sandbox Code Playgroud)

c# oop polymorphism

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

Fluent NHibernate:如何在两个方向上进行一对多引用?

我们的系统上有用户人员。每个用户有很多人。但是当用户登录时,我们需要查找他的主要人员记录以填写他的姓名、地址、电话等。

public class Person
{
    /// <summary>Every Person belongs to a user.</summary>
    public virtual User User { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual string Address { get; set; }
    public virtual string Phone { get; set; }
    // More methods & Properties
}

public class User : Entity
{
    public virtual string Username { get; set; }
    public virtual string Password …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate-mapping fluent-nhibernate

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

从GUI应用程序打印到控制台的消息 - C#

嗨我想在Visual Studio上运行C#GUI应用程序时打印一些消息.这就像调试一样.所以我尝试了,但没有奏效.console.writeline()没有工作或它可能工作,但我看不到消息.谁知道这件事?如果你知道,给我一个解决方案.谢谢.

c# console user-interface

3
推荐指数
2
解决办法
4467
查看次数

如何避免在Android Facebook SDK中已经授权

当我使用Facebook的Android SDK单点登录时,我得到一个完全无用的页面.

"你已经授权了happyapp.按"好的"继续.

此页面会破坏用户体验.我怎么能摆脱它.很多人都看到了这个,但没有发布任何解决方案.

甚至Facebook承认这是一个问题,请参阅:http://forum.developers.facebook.net/viewtopic.php?id = 84548

有谁知道任何解决方法吗?

android facebook

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

更好的方法来识别没有收集垃圾的对象?

简而言之

我有一个程序,随着时间的推移逐渐使用越来越多的内存.我正在使用jmap和jhat来尝试和诊断它,但我仍然不是那里.

背景

该程序是一个长期运行的服务器,由hbase数据存储区支持,为许多其他东西提供thrift服务.但是,运行几天之后,它最终将达到分配的堆限制,并且几乎所有时间都在垃圾收集中来回晃动.似乎引用会被保存到某个地方的大量数据中

到目前为止我做了什么

在摆弄jstat和jconsole之后,我最终得到了运行进程的jmap的heapdumps,并通过jhat运行它,并且数字简单不会累加到内存利用率附近的任何地方

jmap -F -dump:live,format=b,file=heap.dump 12765

jmap -F -dump:format=b,file=heap.all 12765

直方图顶部的一些东西

Class   Instance Count  Total Size
class [B     7493    228042570
class java.util.HashMap$Entry    2833152     79328256
class [Ljava.util.HashMap$Entry;     541     33647856
class [Ljava.lang.Object;    303698  29106440
class java.lang.Long     2851889     22815112
class org.apache.hadoop.hbase.KeyValue   303593  13358092
class org.apache.hadoop.hbase.client.Result  303592  9714944
class [I     14074   9146580
class java.util.LinkedList$Entry     303841  7292184
class [Lorg.apache.hadoop.hbase.KeyValue;    303592  7286208
class org.apache.hadoop.hbase.io.ImmutableBytesWritable  305097  4881552
class java.util.ArrayList    302633  4842128
class [Lorg.apache.hadoop.hbase.client.Result;   297     2433488
class [C     5391    320190
Run Code Online (Sandbox Code Playgroud)

虽然这里的总数并没有加起来,但是在进行堆转储时,进程使用了​​超过1GB的内存.

直接明显的罪魁祸首似乎是我在整个地方留下了HBase Result和KeyValue条目.试图追踪引用,我最终命中了

Object …
Run Code Online (Sandbox Code Playgroud)

java debugging garbage-collection jvm jhat

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

StringBuilder如何决定其容量应该有多大?

我知道当sb已经处于容量状态时,当你使用sb.Append(..)时,StringBuilder对象会分配更多的内存.但是这个容量增加了多少?

    StringBuilder sb = new StringBuilder(5);
    sb.Append("0123456789");
Run Code Online (Sandbox Code Playgroud)

现在,某人的能力是什么?为什么?乘数是多少?

为了清楚起见.我问的是容量而不是长度.

谢谢!

c# clr

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

Numpy vectorize,使用列表作为参数

numpy vectorize函数很有用,但是当函数参数是列表而不是标量时,它表现不佳.举个例子:

import numpy as np

def f(x, A):
    print "type(A)=%s, A=%s"%(type(A),A)
    return sum(A)/x

X = np.linspace(1,2,10)
P = [1,2,3]

f2 = np.vectorize(f)

f(X,P)
f2(X,P)
Run Code Online (Sandbox Code Playgroud)

得到:

type(A)=<type 'list'>, A=[1, 2, 3]
type(A)=<type 'numpy.int64'>, A=1

Traceback (most recent call last):
  File "vectorize.py", line 14, in <module>
    f2(X,P)
  File "/usr/local/lib/python2.6/dist-packages/numpy/lib/function_base.py", line 1824, in __call__
    theout = self.thefunc(*newargs)
  File "vectorize.py", line 5, in f
    return sum(A)/x
TypeError: 'numpy.int64' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我知道函数f 没有vectorize它的情况下工作正常,但是我想知道如何(通常)向量化一个函数,该函数的参数采用列表而不是标量.

python numpy vectorization

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

DataContract序列化抽象类

我有一个接口IServiceInfo和一个抽象类ServiceInfo.有几个继承自ServiceInfo的类,如CoreServiceInfo,ModuleServiceInfo等.有一个名为RootService的服务契约,它返回IServiceInfo.

 public IServiceInfo GetServiceInfo()
 {
     return (IServiceInfo)new CoreServiceInfo();
 }
Run Code Online (Sandbox Code Playgroud)

我有序列化问题.我可以使用ServiceKnownType来标识基类,使用KnownType来标识子类.

问题是我不知道所有的ServiceInfo子节点,因为应用程序可以有从ServiceInfo继承的不同子节点的插件,所以我无法告诉序列化器将序列化XML中的所有子节点.

我可以忽略抽象类,但它包含某些常见的实现,所以我需要保留它.作为一种解决方法,我可以让另一个类说"sampleServiceInfo"并将所有info类转换为sampleServiceInfo并从Service方法返回它,并将KnownType定义为ServiceInfo类.

[KnownType(typeof(sampleServiceInfo))]
public class ServiceInfo : IServiceInfo
Run Code Online (Sandbox Code Playgroud)

但这听起来并不是很好的方式.请建议.我需要编写自定义序列化程序吗?是否有任何方法只能序列化基数并忽略孩子,当两者都有相同的成员?

c# wcf serialization abstract

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

什么是notifycollectionchangedaction重置值

我有一个可观察的集合...... SelectableDataContext<T>在泛型类SelectableDataContext<T>中......有两个私有成员变量

  1. 私人T项目.
  2. 私人布尔被选中.

当IsSelected属性发生更改时...我的集合的已更改属性未触发.

我认为它应该解雇...因为它ResetINotifyCollectionChangedAction.

wpf reset mvvm inotifycollectionchanged

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

未捕获的TypeError:对象函数()

我写了以下函数.在运行时,浏览器抱怨未捕获的TypeError ...没有方法'init'.我的代码出了什么问题?

function build_results_grid (response) {

        // build grid
        grid_ui.init();

    } // build the results grid

    var grid_ui = function () {

        return {
            init: function () {
               //build_grid();
            }
      }; // return
    } 
Run Code Online (Sandbox Code Playgroud)

javascript extjs

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