我确实理解C#中没有多重继承.但是,我遇到了一种我真的希望它存在的情况.我正在创建一个自定义类,它要求我继承CLR类型并覆盖一些方法.不幸的是,我正在创建其中几个非常相似的.为了DRY的利益,我真的想将常用功能移到基类,但后来我需要继承2个类.我可以使用接口(事实上我现在正在使用它)但这只解决了一半的问题,因为方法实现仍然需要在几个自定义类中重复.
实现我想要做的事情的纯粹方式是什么?
编辑:
这是一个通用的代码示例
public class CustomTypeOne : CLRType
{
public override void Execute(HttpContext context)
{
//Some code that's similar across CustomTypeOne, CustomTypeTwo etc
}
public void DoStuff()
{
//Same for all CustomTypes and can be part of a base class
}
//More methods
}
public class CustomTypeTwo : CLRType
{
public override void Execute(HttpContext context)
{
//Some code that's similar across CustomTypeOne, CustomTypeTwo etc
}
public void DoStuff()
{
//Same for all CustomTypes and can be part of a …Run Code Online (Sandbox Code Playgroud) 我需要检索手机的方向.目前我写了这个:
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()){
case Sensor.TYPE_MAGNETIC_FIELD:
this.mag_vals = event.values.clone();
this.sensorReady = true;
break;
case Sensor.TYPE_ACCELEROMETER:
this.acc_vals = event.values.clone();
break;
}
if (this.mag_vals != null && this.acc_vals != null && this.sensorReady) {
this.sensorReady = false;
float[] R = new float[ProjectConstants.SIZE_MATRIX];
float[] I = new float[ProjectConstants.SIZE_MATRIX];
SensorManager.getRotationMatrix(R, I, this.acc_vals, this.mag_vals);
SensorManager.getOrientation(R, this.actual_orientation);
...
Run Code Online (Sandbox Code Playgroud)
如果我将手机放在平面上并将其旋转到表面上,此代码可让我获取手机的方向.
我不明白的是,如果我向上移动手机的值this.actual_orientation[0],即[此处] [1]所述的zed轴上的旋转,虽然没有旋转,但值会增加.
有人知道会发生什么吗?
编辑
另一件奇怪的事......
我在办公室里尝试了我的应用程序,它有我之前描述的奇怪的行为..我在同一个办公室(同样的情况)尝试了一个指南针应用程序,我从市场上取得它与我的相同的行为..当我我把电话向上移动了一致的价值变化..我在同一个办公室(同样的情况)尝试了i-phone罗盘,它没有那种奇怪的行为!
然后,当我到家时,我尝试了两个,我的应用程序和我的Android手机的指南针应用程序,他们工作!!即使我向上移动手机价值稳定...
非常感谢.
[1]:http://developer.android.com/reference/android/hardware/SensorManager.html#getOrientation(float [],float [])
你好,我试着写一个测试我可以模拟一个HttpRequestBase来返回这样的帖子值吗?请帮助,因为它非常紧急,我怎么能实现这一点?
var collection = new NameValueCollection();
collection.Add("Id", "1");
collection.Add("UserName", "");
var mocks = new MockRepository();
using (mocks.Record())
{
Expect.Call(requestBase.Params).Return(collection);
}
Run Code Online (Sandbox Code Playgroud)
基本上我有一个要求,要求我模拟请求post参数而不是表单值,因为UI客户端不是html表单,任何想法如何伪造/模拟httprequest post params?返回类型是nameVaueCollection
如何将字节数组转换为字符串?
我发现这些功能正好相反:
function string2Bin(s) {
var b = new Array();
var last = s.length;
for (var i = 0; i < last; i++) {
var d = s.charCodeAt(i);
if (d < 128)
b[i] = dec2Bin(d);
else {
var c = s.charAt(i);
alert(c + ' is NOT an ASCII character');
b[i] = -1;
}
}
return b;
}
function dec2Bin(d) {
var b = '';
for (var i = 0; i < 8; i++) {
b = (d%2) + b;
d …Run Code Online (Sandbox Code Playgroud) 我需要在index.jsp页面中显示内部版本号
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>Title (build: BUILDNUMBER )
</head>
Run Code Online (Sandbox Code Playgroud)
构建号可以由maven提供到*.properties文件中.读取*.properties文件并使用Spring显示属性的最佳方法是什么?
我正在尝试从jsp页面访问soap webservice.我需要一些简单轻巧的东西,因为这是一个模型.
提前致谢.
编辑:正如下面kennytm和调查自己后指出,根据ECMA规范,当两个物体被确定为在自定义排序相同,JavaScript是不是必须离开以相同的顺序这两个对象.Chrome和Opera是唯一两种选择不稳定排序的主要浏览器,但其他浏览器包括Netscape 8&9,Kazehakaze,IceApe和其他一些浏览器.Chromium团队已将此错误标记为"按预期工作",因此不会"修复".如果您需要数组在值相等时保持其原始顺序,则需要使用一些其他机制(例如上面的那个).0排序对象时返回实际上是没有意义的,所以不要打扰.
我刚刚得到一份报告,我写的一些代码在Chrome上打破了.我已经将它跟踪到我用于对对象数组进行排序的自定义方法.我真的很想把它称为一个错误,但我不确定是不是.
在对所有其他浏览器排序对象数组时,如果两个对象解析为相同的值,则更新后的数组中的顺序保持不变.在Chrome中,他们的订单似乎是随机的.在Chrome和您想要的任何其他浏览器中运行以下代码.你应该明白我的意思.
我有两个问题:
首先,我是否正确地假设当您的自定义分拣机返回时0,两个比较的项目应保持其原始顺序(我有一种感觉我错了).
第二,有什么好方法可以解决这个问题吗?我唯一能想到的是在排序之前将自动递增数字作为属性添加到数组的每个成员,然后在两个项目sort将resolve与同一值进行比较时使用该值.换句话说,永远不会返回0.
这是示例代码:
var x = [
{'a':2,'b':1},
{'a':1,'b':2},
{'a':1,'b':3},
{'a':1,'b':4},
{'a':1,'b':5},
{'a':1,'b':6},
{'a':0,'b':7},
]
var customSort = function(a,b) {
if (a.a === b.a) return 0;
if (a.a > b.a) return 1;
return -1;
};
console.log("before sorting");
for (var i = 0; i < x.length; i++) {
console.log(x[i].b);
}
x.sort(customSort);
console.log("after sorting");
for (var i = 0; i < x.length; i++) {
console.log(x[i].b); …Run Code Online (Sandbox Code Playgroud) 我有Forms身份验证,我需要一个自定义对象存储在HttpContext.Current.User和Thread.CurrentPrincipal中.
为了得到这个,我听PostAuthenticateRequest事件,然后从DB读取我需要存储在HttpContext.Current.User和Thread.CurrentPrincipal中的所有用户数据,然后我实例化自定义IPrincipal和IIdentity对象并将它们分配给上面位置.
问题是由于某种原因,PostAuthenticateRequest会针对单个请求多次触发..这会导致不必要的DB往返,从而影响性能.
我该如何解决这个问题?(ASP.NET MVC 2)
谢谢.
asp.net ×2
c# ×2
javascript ×2
.net ×1
android ×1
asp.net-mvc ×1
casting ×1
compression ×1
java ×1
jsp ×1
lzma ×1
magnetometer ×1
maven-2 ×1
orientation ×1
python ×1
rhino-mocks ×1
sensor ×1
soap ×1
sorting ×1
spring ×1
xml ×1