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

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

即使我尝试直接导入类,import stdlib.StdRandom;它仍然无法正常工作.
我该怎么做才能使它正常工作?
在我的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在我的包上实现接口,比如: …
我有两个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) 现在我有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}" />
但它看起来并不优雅.可能还有另一种方法吗?
我已经阅读了所有地理编码服务API 文档,但没有找到任何有关批量地理编码的信息.可能是我错过了什么,有可能提出批量请求吗?
我正在使用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) 我有一个 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) 我有在 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) 我有课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;}一切都会正常工作。我该如何解决这个问题?
c# ×5
.net ×1
asp.net-core ×1
autofixture ×1
controls ×1
eclipse ×1
gdi ×1
google-maps ×1
ide ×1
ienumerable ×1
java ×1
linux ×1
mfc ×1
mocking ×1
nlog ×1
pop3 ×1
unit-testing ×1
visual-c++ ×1
vsix ×1
winapi ×1
wpf ×1
xaml ×1