我正在使用Codeplex主页上的最新MEF 2预览版,它应该添加开放式泛型支持.确实如此,但在这种特定情况下,MEF无法组成通用接口的通用实现:
public interface IOuter
{
IInner Value { get; }
}
[Export(typeof(IOuter))]
public class MyOuter : IOuter
{
[ImportingConstructor]
public MyOuter(InnerGenericClass<string, int> value)
{
this.Value = value;
}
public IInner Value { get; private set; }
}
public interface IInner
{
void Say();
}
public interface IGenericInner<T, K> : IInner
{
// something else here
}
[Export(typeof(IGenericInner<,>))]
public class InnerGenericClass<T, K> : IGenericInner<T, K>
{
public void Say()
{
Console.WriteLine("{0}, {1}", typeof(T), typeof(K));
}
}
class Startup …Run Code Online (Sandbox Code Playgroud) 为什么我不能使用table.sort对具有关联索引的表进行排序?
using (var bmp = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb))
using (var g = Graphics.FromImage(bmp))
{
g.Clear(Color.Transparent);
g.DrawImage(image, 0, 0);
bmp.Save("image.bmp", ImageFormat.Bmp);
}
Run Code Online (Sandbox Code Playgroud)
问题应该是明确的:为什么保存到BMP 会将透明度变为黑色,而保存到PNG 会保留它?
只是为了澄清:图像采用Format8bppIndexed格式,其调色板确实包含透明色(例如,它正确地绘制在窗体/图片框上)
编辑:我的错,Bitmap.Save()实际上以Format32bppRgb格式保存BMP ,即使位图格式是Format32bppArgb.
如何在线检测碰撞,最好是点击鼠标?
我不使用XNA.我只使用简单的WinForms.我不会创造一个游戏.
编辑:我从brone链接实现了解决方案,并得到了非常奇怪的结果.这是一个小片段.我做错了什么?粘贴链接
我不太确定,为什么分组IEnumerable<string>不起作用.我当然提供自定义IEqualityComparer.
public class StringCollectionEqualityComparer : EqualityComparer<IEnumerable<string>>
{
public override bool Equals(IEnumerable<string> x, IEnumerable<string> y)
{
if (Object.Equals(x, y) == true)
return true;
if (x == null) return y == null;
if (y == null) return x == null;
return x.SequenceEqual(y, StringComparer.OrdinalIgnoreCase);
}
public override int GetHashCode(IEnumerable<string> obj)
{
return obj.OrderBy(value => value, StringComparer.OrdinalIgnoreCase).Aggregate(0, (hashCode, value) => value == null ? hashCode : hashCode ^ value.GetHashCode() + 33);
}
}
class A
{
public IEnumerable<string> StringCollection { get; set; …Run Code Online (Sandbox Code Playgroud)