小编See*_*eer的帖子

如何在Eclipse中使用库进行算法第一部分Coursera课程

我已经开始了Coursera Algorythms课程.练习作业必须在Java上完成,他们建议使用DrJava作为IDE,但它真的很不方便.所以我想使用Eclipse,但问题是我无法使用为本课程提供的2个库(algs4.jarstdlib.jar).在完成本指南的步骤后,我能够将它们包含在我的项目中:

在此输入图像描述

但是当我尝试在我的项目中使用他们的类时,Eclipse不允许这样做,我无法通过Ctrl+ 导入它们Space:

在此输入图像描述

即使我尝试直接导入类,import stdlib.StdRandom;它仍然无法正常工作.

我该怎么做才能使它正常工作?

java eclipse ide

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

菜单项的动态可见性

在我的VS扩展中,我需要为我的新项目类型添加菜单项.但我希望它只显示我的自定义类型.所以我将此代码添加到.vcst文件中:

  <Button guid="_Interactive_WindowCmdSet" id="cmdidLoadUI" priority="0x0100" type="Button">
    <Parent guid="_Interactive_WindowCmdSet" id="ProjectItemMenuGroup" />
    <Icon guid="guidImages" id="bmpPic1" />
    <CommandFlag>DynamicVisibility</CommandFlag>
    <Strings>
      <ButtonText>Load</ButtonText>
    </Strings>
  </Button>


  <Group  guid="_Interactive_WindowCmdSet" id="ProjectItemMenuGroup" priority="0x0600">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
  </Group>
Run Code Online (Sandbox Code Playgroud)

并将此代码添加到包初始化:

            // Create the command for the menu item.
            CommandID projectMenuCommandID = new CommandID(GuidList.Interactive_WindowCmdSet, (int)PkgCmdIDList.cmdidLoadUI);
            OleMenuCommand projectmenuItem = new OleMenuCommand(LoadUIMenuItemCallback, projectMenuCommandID);
            projectmenuItem.BeforeQueryStatus += projectmenuItem_BeforeQueryStatus;
            mcs.AddCommand(projectmenuItem);
Run Code Online (Sandbox Code Playgroud)

查询状态处理程序是:

    private void projectmenuItem_BeforeQueryStatus(object sender, EventArgs e)
    {
        OleMenuCommand menuCommand = sender as OleMenuCommand;

        if (menuCommand != null)
            menuCommand.Visible = IsProjectOfRightType(GetSelected<Project>());
    }
Run Code Online (Sandbox Code Playgroud)

问题是 - 这个状态处理程序永远不会被调用.所以我为所有项目类型显示了此菜单项.

我也试过IOleCommandTarget在我的包上实现接口,比如: …

c# visual-studio-2010 visual-studio vsix visual-studio-2012

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

IEnumerable泛型的扩展

我有两个IEnumerable扩展:

public static class IEnumerableGenericExtensions
{
    public static IEnumerable<IEnumerable<T>> InSetsOf<T>(this IEnumerable<T> source, int max)
    {
        List<T> toReturn = new List<T>(max);
        foreach (var item in source)
        {
            toReturn.Add(item);
            if (toReturn.Count == max)
            {
                yield return toReturn;
                toReturn = new List<T>(max);
            }
        }
        if (toReturn.Any())
        {
            yield return toReturn;
        }
    }

    public static int IndexOf<T>(this IEnumerable<T> source, Predicate<T> searchPredicate)
    {
        int i = 0;
        foreach (var item in source)
            if (searchPredicate(item))
                return i;
            else
                i++;

        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我写这段代码:

        Pages = …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable

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

使用TemplateSelector属性控件

现在我有ListView并在一列中有:

<GridViewColumn CellTemplateSelector="{StaticResource messagerEditorTemplateSelector}"/>

一切都很好:单元格充满了基于项目的内容.但是现在我想在这个单元格中放置2个控件:必须根据绑定选择一个模板,而使用名称控制其他模板TimeRangeView.但我无法理解它是如何实现的?所以我必须有如下代码:

<GridViewColumn>
    <DataTemplate>
        <StackPanel>
            <SomeControlWhichSupportTemplateSelector ... />
            <views:TimeRangeView ... />
        </StackPanel>
    </DataTemplate>
</GridViewColumn>`
Run Code Online (Sandbox Code Playgroud)

我应该使用哪种控制模板?我发现只有列表框但它必须绑定到集合.当然,我可以绑定:

<ListBox ItemsSource="{Binding Converter=ItemToCollectionConverter}" />

但它看起来并不优雅.可能还有另一种方法吗?

wpf xaml controls

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

Google地理编码API(V3)是否支持批量地理编码?

我已经阅读了所有地理编码服务API 文档,但没有找到任何有关批量地理编码的信息.可能是我错过了什么,有可能提出批量请求吗?

google-maps google-geocoding-api

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

使用OpenPop.NET删除邮箱中的消息

我正在使用OpenPop.NET客户端通过Pop3协议访问我的邮箱。除了一件事情,一切都很好:我无法删除邮件。即使从官方站点获取样本也无济于事。我已经尝试过使用多个邮件服务器:gmail.com,yandex.ru,rambler.ru情况是相同的。

更新-添加代码。

static void Main(string[] args)
{
    DeleteMessageOnServer("pop.gmail.com", 995, true, USERNAME, PASSWORD, 1);
}

public static void
    DeleteMessageOnServer(string hostname, int port, bool useSsl, string username,
    string password, int messageNumber)
{
    // The client disconnects from the server when being disposed
    using (Pop3Client client = new Pop3Client())
    {
        // Connect to the server
        client.Connect(hostname, port, useSsl);

        // Authenticate ourselves towards the server
        client.Authenticate(username, password);

        // Mark the message as deleted
        // Notice that it is only MARKED as deleted …
Run Code Online (Sandbox Code Playgroud)

c# pop3

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

在 OnPaint 中闪烁

我有一个 CWind 班的孩子,我在那里订阅 OnPaint 事件:

BEGIN_MESSAGE_MAP(MyListBox, CWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()
Run Code Online (Sandbox Code Playgroud)

如果在 OnPaint 处理程序中我在窗口中绘制一些简单的东西,比如边框,一切都很好。但是如果我添加Sleep(50);(通过这样做我模拟了一些硬绘图操作)我的窗口将闪烁。我不明白为什么会发生这种情况......可能的问题是经常调用 OnPaint 函数,大约一秒内调用 2-3 次。

更新:我正在使用双重比对:首先我在 PaintDeviceContent 中绘制窗口内容,然后将此 DC 复制到窗口的 DC。

更新2:这是代码:

void CDirectionsListBox::OnPaint() 
{ 
    CRect rectClient;
    GetClientRect(rectClient);

    CPaintDC dc(this); // device context for painting

    CDC DCMem;
    DCMem.CreateCompatibleDC( &dc );

    // Draw window here, workign with DCMem

    dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), &DCMem, 0, 0, SRCCOPY);
}
Run Code Online (Sandbox Code Playgroud)

winapi mfc gdi visual-c++

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

NLog 在 Linux 上不起作用

我有在 Ubuntu 16.04 上运行的 asp.net core 1.1 应用程序。使用 NLog 配置日志记录:

    loggerFactory.AddNLog();
    loggerFactory.ConfigureNLog("nlog.config");
    app.AddNLogWeb();
Run Code Online (Sandbox Code Playgroud)

在我的开发 Windows 系统上,一切正常:已创建日志文件夹并且日志记录按预期工作。但是在 Linux 上日志记录不起作用。怎么了?

配置文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="internal-nlog.txt">
  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>
  <variable name="logDirectory" value="logs/${shortdate}" />
  <variable name="logRootDirectory" value="logs" />

  <targets>
    <target name="fileLogTrace" xsi:type="File" fileName="${logDirectory}/trace.txt" />
    <target name="fileLogDebug" xsi:type="File" fileName="${logDirectory}/debug.txt" />
    <target name="fileLogInfo" xsi:type="File" fileName="${logDirectory}/info.txt" />
    <target name="fileLogWarn" xsi:type="File" fileName="${logDirectory}/warn.txt" />
   </targets>

  <rules>
    <logger name="*" level="Trace" writeTo="fileLogTrace" />
    <logger name="*" level="Debug" writeTo="fileLogDebug" />
    <logger name="*" level="Info" writeTo="fileLogInfo" />
    <logger …
Run Code Online (Sandbox Code Playgroud)

c# linux nlog asp.net-core

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

Autofixture 无法使用接口属性?

我有课Alias。我已经将它与 Autofixture 一起使用,一切正常。然而,当我向我的类添加接口属性时,测试开始失败。

这就是我的课:

public class Alias : NotifyPropertyChanged
{
    private Alias()
    {
        Nicks = new List<string>();
        History = new History(this);
    }
    
    public IDownloader Downloader {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我在测试中使用它是这样的:

Fixture fixture =  new Fixture();

var alias = fixture.Create<Alias>();
Run Code Online (Sandbox Code Playgroud)

并得到异常:

loeh.AutoFixture.ObjectCreationException:AutoFixture 无法从 Core.Helpers.IDownloader 创建实例...

我尝试通过注册接口,fixture.Register<IVKDownloader>(() => new Downloader());但仍然收到此错误。

如果我更改此属性以使用类型而不是接口,public Downloader Downloader {get;set;}一切都会正常工作。我该如何解决这个问题?

.net c# unit-testing mocking autofixture

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