问题列表 - 第14092页

如何在这里分解代码重复?

所以,我想听听大家对此的看法.

我有一个项目,其中三个不同的继承路径需要全部实现另一个基类.这将是多重继承,在C#中是不允许的.我很好奇如何在没有代码重复的情况下实现这一点.

编辑:我不拥有这三个班级.这三个类来自第三方代码.所以我不能让它们都扩展我的基类.

现在我使用三个不同的类,每个类扩展一个不同的基类.然后我在三个抽象类中的每一个中都有相同的代码.

我可以使用单个界面,但我仍然需要复制代码.

我可以创建一些实现代码的静态类,然后在3个抽象类中的每一个中引用它.它会消除重复,但是,我不确定我对此的看法.我可以在接口上实现Extensions方法,但接口本身将是空的,扩展方法(包含重复的代码)将在一个完全不同的文件中,这似乎不太正确.另外,我无法在扩展方法中实现属性...

如何在这里分解代码重复?

编辑,继承树:

class Class1 : 3rdPartyBaseClass1 { }
class Class2 : 3rdPartyBaseClass2 { }
class Class3 : 3rdPartyBaseClass3 { }
Run Code Online (Sandbox Code Playgroud)

我有代码,我想要在上面的每个类中,但我不能将它添加到3rdPartyClasses.

c# inheritance refactoring design-patterns multiple-inheritance

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

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

使用Linq,按某些属性对对象进行排序,然后选择前2个对象

使用linq查询/方法chainging我希望只选择Point.X排序的List中的前2个Point对象.我怎么能够?

.net c# linq

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

如何在C++中用time.h去除警告?

当我用这个

#include<time.h>
//...
int n = time(0);
//...
Run Code Online (Sandbox Code Playgroud)

我收到关于将时间转换为int的警告.有没有办法删除此警告?

c++ warnings system-calls time.h

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

使用Javascript计算时间

我如何计算使用javascript在2个事件之间经过多少时间?比如,到毫秒?

javascript time

4
推荐指数
3
解决办法
3021
查看次数

如何使用依赖库分发Mac OS X?

我有一个程序(特别是我的SO DevDays倒计时应用挑战的入口),它依赖于几个动态库,即libSDL,libSDL_ttf等.我/opt/local/lib通过MacPorts 安装了这些库,许多人不会安装这些库(有些人可能已经安装了这些库,但是没有安装它们).

如何分发我的程序,以便没有安装这些库的人可以开箱即用?显然我将不得不分发各种.dylib文件,但这样做是不够的.动态加载程序仍然会查找安装在我安装的位置的库.有没有办法告诉动态加载器查看可执行文件的当前目录,比如Windows对DLL的作用?人们不应该修改任何环境变量(例如DYLD_LIBRARY_PATH),因为我再次希望这可以开箱即用.

macos software-distribution dynamic-linking dyld

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

Jquery Json动态变量名生成

我做了一个jquery .ajax调用,我期待一个json结果.问题是,如果有5位作者,我会得到author_details_0,author_details_1,author_details_2等等.我怎样才能动态构造要从json中检索的变量的名称?我不知道我会得到多少作者,可能有数百名.

$.ajax({
type: "POST",
url: "/authordetails/show_my_details/",
data: af_pTempString,
dataType: "json",
beforeSend: function() {
},
success: function(jsonData) {
    console.log("Incoming from backend : " + jsonData.toSource());
    if(jsonData.AuthorCount)
    {
        console.log("Number of Authors : " + jsonData.AuthorCount);
        for (i = 0; i < jsonData.AuthorCount; i++)
        {
            temp = 'author_details_' + i; <-------------------This is the name of the variable I'm expecting.
            console.log("Farm information : " + eval(jsonData.temp) ); <----- This doesn't work, how can I get jsonData.author_details_2 for example, 'coz I don't know how …
Run Code Online (Sandbox Code Playgroud)

variables jquery json dynamic

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

在Delphi 7中有效的ZeroConf / Bonjour代码在2009年无法正常工作

我对DNSServiceRegister具有以下声明:

  function DNSServiceRegister
      (
      var sdRef: TDNSServiceRef;
      const flags: TDNSServiceFlags;
      const interfaceIndex: uint32_t;
      const name: PUTF8String;                    //* may be NULL */
      const regType: PUTF8String;
      const domain: PUTF8String;                  //* may be NULL */
      const host: PUTF8String;                    //* may be NULL */
      const port: uint16_t;
      const txtLen: uint16_t;
      const txtRecord: Pointer;                 //* may be NULL */
      const callBack: TDNSServiceRegisterReply; //* may be NULL */
      const context: Pointer                    //* may be NULL */
      ): TDNSServiceErrorType; stdcall; external DNSSD_DLL;
Run Code Online (Sandbox Code Playgroud)

在我的Bonjour框架中,对于已启用的已宣布服务(即实际上开始通过Bonjour宣布自身),我有以下响应:

  procedure TAnnouncedService.Activate;
  var
    flags: …
Run Code Online (Sandbox Code Playgroud)

delphi bonjour zeroconf delphi-2009

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

为什么我的ClaimsRequest返回null?

我刚刚开始尝试DotNetOpenAuth项目.修改示例OpenIdRelyingPartyMvc项目,我能够获得一个ClaimRequest用于与Google合作的电子邮件.

但是,当我尝试将OpenID添加到我自己的项目时,ClaimResponse总是返回null.我想知道是否存在我缺少的项目或环境设置?

这是我的Authenticate方法:

public ActionResult Authenticate(string returnUrl)
{
    var response = openid.GetResponse();
    if (response == null)
    {
        // Stage 2: user submitting Identifier
        Identifier id;
        if (Identifier.TryParse(Request.Form["openid_identifier"], out id))
        {
            try
            {
                IAuthenticationRequest req = openid.CreateRequest(Request.Form["openid_identifier"]);
                req.AddExtension(new ClaimsRequest { Email = DemandLevel.Require });
                return req.RedirectingResponse.AsActionResult();
            }
            catch (ProtocolException ex)
            {
                ViewData["Message"] = ex.Message;
                return View("Login");
            }
        }
        else
        {
            ViewData["Message"] = "Invalid identifier";
            return View("Login");
        }
    }
    else
    {
        // Stage 3: …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dotnetopenauth

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

如何在visual studio 2008中将文本编码更改为iso-8859-1

我的视觉工作室现在正在使用utf-8保存文件.我如何配置visual studio来保存它iso-8859-1?

character-encoding visual-studio-2008

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