问题列表 - 第29511页

得到最近的一条线

我想有一个直接的C#函数来获得最近点(从点P)到线段AB.抽象函数可能如下所示.我搜索了SO,但没有找到可用的(由我)解决方案.

public Point getClosestPointFromLine(Point A, Point B, Point P);
Run Code Online (Sandbox Code Playgroud)

c# math geometry

32
推荐指数
5
解决办法
4万
查看次数

Php如何删除任何最后一个逗号

示例输出

1. test,test,test,test,test,
2. test,test,test,,
3. test,test,,,
4. test,,,,,
Run Code Online (Sandbox Code Playgroud)

我试过根据我之前的问题使用implode,但它只修剪了最后一个逗号.

如何删除任何最后一个逗号?

php trim

40
推荐指数
3
解决办法
8万
查看次数

Android:每当手机连接到wifi发送一个http请求

我试图制作一个Android应用程序,每当用户连接到一个wifi时,应用程序发送一个http请求到我的服务器,稍后通过使用推送通知服务器发送一些消息给用户.但在这里我有一个问题:如何使这个应用程序在后台运行,它也理解手机是否连接到wifi,意味着即使applcation关闭,它仍然知道,每当手机连接到wifi,它发送http请求.谢谢

android background

2
推荐指数
1
解决办法
1742
查看次数

是否规范化结果表

在我们的库存数据库(SQL Server 2008标准版)中,我们有一个表(称为库存结果),它按库存期存储每个库存项目的结果,如下所示:

<< StockResults >>
PK StockPeriodID int
PK StockItemID int 
OStockCost money 
OStockQty real 
DeliveriesQty real 
CreditsQty real 
TransfersInQty real 
TransfersOutQty real 
CStockQty real 
OStockAmt money 
DeliveriesAmt money 
CreditsAmt money 
TransfersInAmt money 
TransfersOutAmt money 
CStockAmt money
... except that it has about 40 columns
Run Code Online (Sandbox Code Playgroud)

我们正在考虑规范化该表,以便我们有一个用于字段的表和另一个用于数据的表.像这样:

create table StockResults_Fields
(FieldID int, FieldName varchar(20), FieldDataType varchar(10))

create table StockResults_Values
(StockPeriodID int, StockItemID int, FieldID int, FieldName varchar(20), FieldDataType varchar(10))
Run Code Online (Sandbox Code Playgroud)

我们考虑这样做的原因是为了提高表的性能并防止死锁(我们目前正在获得).关于规范化以减少死锁的建议来自本文:减少SQL Server死锁.

我担心的是结果表(已经很大)会变得更大.并且大多数报告在与当前结构类似的结构中显示数据 …

database-design

1
推荐指数
1
解决办法
161
查看次数

如何使用反射将事件处理程序附加到事件?

我知道EventInfo.AddEventHandler(...)可以用来将处理程序附加到事件的方法.但是,如果我甚至无法定义事件处理程序的正确签名,应该怎么做,因为我甚至没有引用处理程序所期望的事件args?

我将用正确的代码解释问题.

//当我在我的解决方案中提供所有可用的场景时,Zero Reflection Scenario.

internal class SendCommentsManager
{
    public void Customize(IRFQWindowManager rfqWindowManager)
    {
        rfqWindowManager.SendComment += HandleRfqSendComment;
    }

    private void HandleRfqSendComment(object sender, SendCommentEventArgs args)
    {
        args.Cancel = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我希望通过使用反射来实现相同的目标.我已经能够找出大部分内容,但是当我将一个委托附加到事件(使用AddEventHandler)时,它会抛出"Error binding to target method."异常.

我理解这个异常背后的原因,将一个错误的委托附加到一个事件.但必须有一些方法来实现这一目标.

 internal class SendCommentsManagerUsingReflection
 {
     public void Customize(IRFQWindowManager rfqWindowManager)
     {
         EventInfo eventInfo = rfqWindowManager.GetType().GetEvent("SendComment");
         eventInfo.AddEventHandler(rfqWindowManager, 
             Delegate.CreateDelegate(eventInfo.EventHandlerType, this, "HandleRfqSendComment"));
         //<<<<<<<<<<ABOVE LINE IS WHERE I AM GOING WRONG>>>>>>>>>>>>>>
     }

     private void HandleRfqSendComment(object sender, object args)
     {
         Type sendCommentArgsType = args.GetType();
         PropertyInfo …
Run Code Online (Sandbox Code Playgroud)

c# reflection events delegates event-handling

8
推荐指数
1
解决办法
7553
查看次数

从MySQL中的表中加入单行

我有两个表playersscores.

我想生成一个类似于下面的报告:

player    first score             points
foo       2010-05-20              19
bar       2010-04-15              29
baz       2010-02-04              13
Run Code Online (Sandbox Code Playgroud)

现在,我的查询看起来像这样:

select p.name        player,
       min(s.date)   first_score,
       s.points      points    
from  players p    
join  scores  s on  s.player_id = p.id    
group by p.name, s.points
Run Code Online (Sandbox Code Playgroud)

我需要s.pointsmin(s.date)返回的行相关联的那个.这个查询会发生这种情况吗?也就是说,我怎么能确定我正在s.points为连接的行获得正确的值?

旁注:我认为这与MySQL缺乏密集排名有某种关系.这里最好的解决方法是什么?

mysql join ranking dense-rank greatest-n-per-group

4
推荐指数
1
解决办法
3788
查看次数

在派生类的构造函数中添加事件处理程序或覆盖OnX()方法?

在设计派生类时,如果不需要更改方法,那么在ctorvs中覆盖OnEventName()方法并添加一些行为(以及调用基本方法)的基类事件中添加处理程序是否有优势?基本方法并不关心事情发生的顺序,但只想要一个具有一点额外行为的可重用组件?

基类:

public abstract class BaseClass
{
    public event EventHandler SomeEvent;
    protected void OnSomeEvent(object sender, EventArgs e)
    {
        // do some stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

选项A:

public class DerivedA
{
    protected override void OnSomeEvent(object sender, EventArgs e)
    {
        // do some other stuff
        base.OnSomeEvent(sender, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

选项B:

public class DerivedB
{
    public DerivedB()
    {
        SomeEvent += (o,e) => { // do some other stuff };
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# events inheritance

5
推荐指数
1
解决办法
3765
查看次数

泛型:编译器似乎无法识别传递给参数的类型与返回的类型相同 - 为什么?

假设我有几个POJO都扩展了一个常见的超类型,BaseObject.

我有一个GenericDao声明为public interface GenericDao<T>.

对于每个特定于类型的DAO,我有一个扩展泛型类型的接口,并将其限制为具体类型(public interface UserDao extends GenericDao<User>),然后是特定于类型的DAO的实现.

在尝试使用大量GenericDao实现的类中,我有一个看起来像的方法

public <T extends BaseObject> long create(T object) {
    return getDao(object.getClass()).save(object);
}
Run Code Online (Sandbox Code Playgroud)

如果我实现getDao()它的参数是一个Class对象,例如

private <T extends BaseObject> GenericDao<T> getDao(Class<T> clazz) { ... }
Run Code Online (Sandbox Code Playgroud)

然后调用getDao(object.getClass()create()方法无法编译-编译器似乎解释的返回类型getDao()

GenericDao<? extends BaseContractObject>
Run Code Online (Sandbox Code Playgroud)

而不是认识到这getDao(Class<T>)将使我返回GenericDao相同的类型T.

有人可以解释为什么会这样吗?据我所知,相同类型绑定或通配符的重复出现不一定是指同一类型; 然而,似乎编译器应该从签名中识别出getDao(Class<T>)传入的T应该与返回的T相同(但显然它不能识别这个,为什么我无法理解的部分).

如果我改为定义getDao签名

private <T extends BaseContractObject> GenericDao<T> getDao(T obj) { …
Run Code Online (Sandbox Code Playgroud)

java generics type-bounds

1
推荐指数
1
解决办法
677
查看次数

枚举值为字符串

有谁知道如何获取字符串的枚举值?

例:

private static void PullReviews(string action, HttpContext context)
{
    switch (action)
    {
        case ProductReviewType.Good.ToString():
            PullGoodReviews(context);
            break;
        case ProductReviewType.Bad.ToString():
            PullBadReviews(context);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

当试图使用ToString(); 编译器抱怨因为case语句期望一个常量.我也知道ToString()是用intellisense中的一行打出来的

c#

37
推荐指数
3
解决办法
5万
查看次数

Perl:如何将子例程的词法文件句柄作为命名参数传递和使用?

我想使用命名参数将词法文件句柄传递给子例程,但以下内容不能编译:

#!/usr/bin/perl -w
use strict;

my $log_fh;
my $logname = "my.log";

sub primitive {
   my ($fh, $m) = @_;
   print $fh $m;
}

sub sophisticated {
   my ($args) = @_;
   print $args->{m};
   print $args->{fh} $args->{m} ;
}

open $log_fh, ">", $logname;

print $log_fh "Today I learned ...\n";

primitive($log_fh,"... the old way works ...\n");

sophisticated({
   fh=>$log_fh, 
   m=>"... and the new way requires an intervention by SO.",
   });
close $log_fh;
Run Code Online (Sandbox Code Playgroud)

投诉是:

Scalar found where operator expected at ./lexical.file.handle.pl line 15, near
} …
Run Code Online (Sandbox Code Playgroud)

perl subroutine

7
推荐指数
1
解决办法
1713
查看次数