大约一周前,我已经从桌面设计跳到了css,从那时起就开始阅读更多关于它的内容了.昨天,我在这里看了一篇很长的帖子,那里的海报正在敲响花车,以及它们是如何贬值的.有很多关于inline-block
在其位置使用的讨论.
我有一个HTML5设计,我刚刚完成它在firefox和chrome看起来很棒但是当从运行Internet Explorer版本7,8和9的其他计算机进行测试时,设计绝对爆炸.这似乎对我这个设计,我已经浮动权是不是在IE荣幸的事情.它似乎只是包裹在它左边的任何东西.
我想知道我是否可以使用花车,或者我是否应该使用它inline-block
.一个如何将两个div彼此相邻的示例,其中一个在左侧,另一个在右侧,使用inline-block
将是很好的.
我有另一个困境,希望有人可以帮助我.我在运行XP SP1的旧开发机器上.我可以测试的最好的IE浏览器是6.我想以某种方式获得一些东西,允许我测试版本7,8和9(如果它还没有,则为10).有人可以推荐任何解决方案吗?
我目前正在研究一种扩展方法,它可以促进问题标题的建议.
当然,我可以.对类型使用GetMetohd("Invoke")方法调用并完成它,但有些东西告诉我这不是"最安全"的方法.类和类型可能会更改,包括BCL中的类和类型.
所以我想出了以下LINQ语句,它可以正常工作:
public static class ActionExtensions
{
public static MethodInfo GetInvoke<T>(this Action<T> obj)
{
var actionType = obj.GetType();
var tType= typeof(T);
return (
from methodInfo
in actionType.GetMethods()
let par = methodInfo.GetParameters()
where par.Length == 1 && par[0].ParameterType == tType
select methodInfo
).FirstOrDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
事情是,即使这感觉有些不确定,因为有一天Action可以改变并包含具有这些特征的另一种方法..即使我添加"HasGenericParameters"约束,也不能保证安全.
您对获取与之相关的确切MethodInfo实例的方法有任何想法吗?
"Action<T>.Invoke()"
Run Code Online (Sandbox Code Playgroud) 我们假设我有以下两种表达方式:
Expression<Func<T, IEnumerable<TNested>>> collectionSelector;
Expression<Func<IEnumerable<TNested>, TNested>> elementSelector;
Run Code Online (Sandbox Code Playgroud)
有没有办法"组合"这些以形成以下:(?)
Expression<Func<T, TNested>> selector;
Run Code Online (Sandbox Code Playgroud)
编辑:
性能非常关键,因此如果可能的话,我会很高兴能够以极少的开销实现最佳解决方案.
非常感谢!
从Reference Source我们可以看到上述方法实现如下:
public static void Enter(Object obj, ref bool lockTaken)
{
if (lockTaken)
ThrowLockTakenException();
ReliableEnter(obj, ref lockTaken);
Contract.Assert(lockTaken);
}
Run Code Online (Sandbox Code Playgroud)
我有一个问题是"if"声明 - 我理解它的重要性,没有必要解释它.我相信这句话也引入了一个非常微妙的问题.
请考虑以下情形:一个线程调用方法并评估if语句,此时发生上下文切换,另一个调用方法,成功获取锁定.
这是一个可行的场景,它表明锁获取的顺序不一定与方法调用的顺序相同.
虽然它在某些情况下可能没有什么作用,但在其他情况下它可能至关重要,所以我的问题是:
1)我是否遗漏了某些内容,或者Monitor类不适合在不可接受的情况下使用?
2)ReliableEnter是否可能遇到类似的情况?
3)是否存在同步机制,确保方法调用的顺序与锁获取的顺序相同?
c# ×3
action ×1
combinators ×1
css ×1
delegates ×1
expression ×1
html5 ×1
linq ×1
locking ×1
reflection ×1