我在我的系统上安装了TortoiseSVN,TortoiseGit和TortoiseHg.正如所料,但不幸的是,这些工具使用相同的图标来指示特定文件夹的版本控制状态.因此,当我在Windows资源管理器中打开我的软件项目文件夹时,我无法立即看到与特定解决方案/项目一起使用的SCM软件:

我当然可以检查是否存在.svn,.git和.hg子文件夹,但是如果在主文件夹图标上指示SCM或将鼠标指针悬停在文件夹上时作为工具提示会更有效.
有谁知道是否存在提供此类功能的shell扩展?
我正在用C#开发一个可移植的类库,我希望将其转换double为a long.这个问题最直接的解决方案是使用该BitConverter.DoubleToInt64Bits方法,但不幸的是,这个方法在.NET类库的可移植库子集中不可用.
作为替代方案,我提出了以下"双通"位转换:
var result = BitConverter.ToInt64(BitConverter.GetBytes(x), 0);
Run Code Online (Sandbox Code Playgroud)
我的测试表明,这个表达式始终产生与之相同的结果DoubleToInt64Bits.然而,我的基准测试也表明,这种替代配方约4慢倍DoubleToInt64Bits时,在一个完整的.NET Framework应用程序来实现.
仅使用可移植库子集,是否可以实现替换DoubleToInt64Bits它比上面的公式更快?
我有一个通过Caliburn.Micro命名约定TextBox绑定到视图模型编号属性的WPF .我希望能够自定义字符串格式,同时保留Caliburn.Micro已设置的约定绑定.我该怎么办?DistanceTextBox
从我的视图模型:
public double Distance
{
get { return _distance; }
set
{
_distance = value;
NotifyOfPropertyChange(() => Distance);
}
}
Run Code Online (Sandbox Code Playgroud)
从我的观点来看:
<TextBox x:Name="Distance"/>
Run Code Online (Sandbox Code Playgroud)
当Distance非零时,我想用固定的小数组显示数字,当Distance为零时,我希望文本框为空.
使用显式绑定我可以将TextBox.Text属性绑定到Distance,然后我可以StringFormat同时设置:
<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
Run Code Online (Sandbox Code Playgroud)
但是,显式Text绑定会使Caliburn.Micro命名约定绑定短路.是否可以自定义字符串格式而无需同时设置TextBox.Text属性的绑定路径,这样我就可以完全依赖Caliburn.Micro来处理Distance-to- TextBoxbinding?
我正在尝试使用微软解算器基础,这样我就可以从一组位置中选择3个最分散的位置.我为我的模型添加了两个目标,一个确保选择3个位置,另一个确保它们是3个最分散的位置.
static void Main(string[] args)
{
Location candidate1 = new Location(0, 43.432, -79.432);
Location candidate2 = new Location(1, 43.0, -79.0);
Location candidate3 = new Location(2, 23.0, 29.0);
Location candidate4 = new Location(3, 43.0, -79.0);
Location candidate5 = new Location(4, 43.0, -79.0);
Location[] candidates = {candidate1, candidate2, candidate3, candidate4, candidate5};
SolverContext solver = new SolverContext();
Model model = solver.CreateModel();
model.Name = "LocationModel";
Set items = new Set(Domain.Any, "candidates");
Decision take = new Decision(Domain.Boolean, "candidate", items);
model.AddDecision(take);
Parameter locations = new Parameter(Domain.RealNonnegative, …Run Code Online (Sandbox Code Playgroud) 我有下面的代码.
public static IEnumerable<PropertyInfo> GetAllPublicInstanceDeclaredOnlyProperties(this Type type)
{
var result =
from PropertyInfo pi in type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
select pi;
return result;
}
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为PCL库,但我无法弄明白.我试过了
type.GetTypeInfo().DeclaredProperties.Where(x => x.BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
Run Code Online (Sandbox Code Playgroud)
但是BindingFlags不存在.
我错过了什么?
假设我有这个enum定义,其中几个成员具有相同的基础值:
enum Number
{
One = 1,
Eins = 1,
Uno = 1
}
Run Code Online (Sandbox Code Playgroud)
根据MSDN文档:
如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示形式,则您的代码不应对该方法将返回的名称做出任何假设.
所以,例如,
var number = Number.One;
Console.WriteLine(number);
Run Code Online (Sandbox Code Playgroud)
给我以下输出:
一型
打印所有枚举成员,
Console.WriteLine($"{Number.One} {Number.Eins} {Number.Uno}");
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
Eins Eins Eins
但是,取nameof每个成员,
Console.WriteLine($"{nameof(Number.One)} {nameof(Number.Eins)} {nameof(Number.Uno)}");
Run Code Online (Sandbox Code Playgroud)
给出以下结果:
一个Eins Uno
显然,enum成员是可分离的.我可以利用这种分离,即有什么方法可以将特定Number成员分配给变量,并且每当访问变量时都会返回相同的成员吗?
我克隆了git://github.com/xamarin/XobotOS.git并按照https://github.com/xamarin/XobotOS/blob/master/sharpen/README的说明进行操作
显然,mono的团队有预建版本,其自述说明是相关的,因为添加提供的站点目录不会在eclipse中的"安装新软件"对话框中添加锐化插件.我想它必须建成.
那么如何构建这个eclipse插件呢?它似乎没有任何ant/maven文件.
我正在使用WinRT Caliburn.Micro开发Windows应用商店应用游戏,我依赖于导航框架.
我有游戏设置(定义玩家)和实际游戏的视图模型.当从设置导航到游戏时,我想将玩家的集合传递给游戏视图模型.我怎样才能做到这一点?
原理上,我的视图模型目前看起来像这样:
public class SetupGameViewModel : NavigationViewModelBase
{
public SetupGameViewModel(INavigationService ns) : base(ns) { }
public IObservableCollection<Player> Players { get; set; }
public void StartGame()
{
// This is as far as I've got...
base.NavigationService.NavigateToViewModel<GameViewModel>();
// How can I pass the Players collection from here to the GameViewModel?
}
}
public class GameViewModel : NavigationViewModelBase
{
public GameViewModel(INavigationService ns) : base(ns) { }
public ScoreBoardViewModel ScoreBoard { get; private set; }
public void InitializeScoreBoard(IEnumerable<Player> players)
{ …Run Code Online (Sandbox Code Playgroud) 我有两个重载的泛型方法:
T Foo<T>(T t) { Console.WriteLine("T"); return t; }
T Foo<T>(int i) { Console.WriteLine("int"); return default(T); }
Run Code Online (Sandbox Code Playgroud)
当我尝试Foo在我的电脑上调用如下:
Foo(5);
Run Code Online (Sandbox Code Playgroud)
我没有编译器错误或警告,并调用带泛型参数的第一个方法(即输出T).在所有C#化身和所有平台上都会出现这种情况吗?在那种情况下,为什么?
另一方面,如果我在泛型调用中明确指定类型:
Foo<int>(5);
Run Code Online (Sandbox Code Playgroud)
调用带参数的第二个方法int,即输出现在int.为什么?
我在两个方法重载中使用不同的参数名称,因此以下调用的输出是预期的:
Foo<int>(t: 5); // output 'T'
Foo<int>(i: 5); // output 'int'
Run Code Online (Sandbox Code Playgroud)
如果我调用第一种方法,我甚至可以省略类型规范:
Foo(t: 5); // output 'T'
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试编译这个:
Foo(i: 5);
Run Code Online (Sandbox Code Playgroud)
我得到一个错误方法'Foo(int)'的类型参数不能从用法中推断出来.尝试显式指定类型参数. 为什么编译器不能处理这个调用?
注意这些测试是在Windows 8 x64系统上使用LinqPad执行的(如果与结果相关...)
在我的iOS应用程序中,我试图调用一个TcpListener实例.我定义并启动监听器如下:
var listener = new TcpListener(IPAddress.Any, 104);
listener.Start();
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码(iOS模拟器,iPhone,调试模式)时,我得到以下异常:
System.Net.Sockets.SocketException:在/Developer/MonoTouch/Source/mono/mcs/class/System/System.Net中的System.Net.Sockets.Socket.Bind(System.Net.EndPoint local_end)[0x00051]拒绝访问/Sveloper/MonoTouch/Source/mono/mcs/class/System/System.Net.Sockets/TcpListener.cs中的System.SNet.Sockets.TcpListener.Start(Int32 backlog)[0x00022]中的.Sockets/Socket.cs:1111 :259 at /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net.Sockets/TcpListener.cs:239 at
...的System.Net.Sockets.TcpListener.Start()[0x00000]
有什么我可以做的,以避免访问被拒绝错误,或者这是Xamarin.iOS上的Mono运行时的内置限制?
c# ×9
.net ×1
android ×1
binding ×1
bitconverter ×1
enums ×1
generics ×1
ios ×1
java ×1
mono ×1
mvvm ×1
optimization ×1
performance ×1
reflection ×1
sharpen-tool ×1
sockets ×1
tortoisegit ×1
tortoisehg ×1
tortoisesvn ×1
wpf ×1
xobotos ×1