小编ARW*_*ARW的帖子

将基类转换为派生类

在C#中是否可以将基类对象显式转换为其派生类之一?目前我认为我必须为我的派生类创建一个构造函数,它接受一个基类对象作为参数并复制属性值.我真的不喜欢这个想法,所以我想尽可能避免它.

这似乎不应该工作(对象被实例化为新的基础,因此不应该为派生类的额外成员分配内存)但是C#似乎允许我这样做:

class BaseClass
{
  ... some stuff ...
}

class DerivedClass : BaseClass
{
    public bool MyDerivedProperty{ get; set; }
}


static void Main(string[] args)
{
    BaseClass myBaseObject = new BaseClass();
    DerivedClass myDerivedObject = myBaseObject as DerivedClass;

    myDerivedObject.MyDerivedProperty = true;
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance casting

106
推荐指数
4
解决办法
18万
查看次数

适用于网络应用的带有Decimal的iPhone数字小键盘?

我知道使用原生iPhone应用程序,您可以使用UIKeyboardTypeDecimalPad强制使用带小数的数字小键盘.有没有办法在移动网页或Web应用程序上为输入字段强制使用相同的键盘?如果还没有,有人知道这个检测是否会添加到iOS 6中的Safari?

我可以毫无问题地显示常规数字键盘,但我真的想要小数点键,所以我不需要显示全键盘.

谢谢!

html forms iphone ios

14
推荐指数
3
解决办法
1万
查看次数

如何检查PHP会话是否存在?

只是想知道如何检查PHP会话是否存在...我的理解是,无论如何,如果我正在使用会话,我必须使用session_start()启动我的文件甚至访问会话,即使我知道它已经存在.

我已经读过用户session_id()来查明会话是否存在,但是因为我必须在调用session_id()之前使用session_start(),而session_start()如果没有会话就会创建一个新ID,如何我可以检查会话是否存在吗?

php session

11
推荐指数
4
解决办法
7万
查看次数

Laravel 4 Artisan根本不工作

在使用版本3进行一些项目之后,第一次玩Laravel 4,但似乎无法让Artisan工作.我已经做了很多搜索,并按照我能找到的故障排除步骤但没有运气.

  • 我安装了Mcrypt
  • 我没有要删除的bootstrap/compiled.php文件
  • 我有来自Github的最新版本的框架
  • 我是最新版的Composer

当我尝试"作曲家更新"时,我收到此错误:

Script php artisan optimize handling the post-update-cmd event returned with an error: 
Run Code Online (Sandbox Code Playgroud)

......没有额外的信息.

试图运行"php artisan list"或任何其他工匠命令只是让我没有输出.

有任何想法吗?

php laravel composer-php laravel-4

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

编写一个非常简单的解析器

我正在编写一个非常基本的Web服务器,它必须支持极其有限的特殊服务器端脚本语言.基本上我需要支持的是"echo",加/减/乘(没有除法)只有2个操作数,一个简单的"date()"函数输出日期和使用"&"运算符来连接字符串.

一个例子可能是:

echo "Here is the date: " & date();
echo "9 x 15 = : & 9*15;
Run Code Online (Sandbox Code Playgroud)

我已经完成并创建了生成令牌所需的代码,但我不确定我是否使用了正确的令牌.

我为以下内容创建了令牌:

ECHO - The echo command
WHITESPACE - Any whitespace
STRING - A string inside quotations
DATE - The date() function
CONCAT - the & operator for concatenation
MATH - Any instance of binary operation (5+4, 9*2, 8-2, etc)
TERM - The terminal character (;)
Run Code Online (Sandbox Code Playgroud)

MATH我特别不确定.通常我看到人们专门为整数创建一个令牌,然后为每个运算符创建一个令牌,但由于我只想允许二进制操作,我认为将它组合成一个令牌是有意义的.如果我要分开做所有事情,我将不得不做一些额外的工作,以确保我从未接受过"5 + 4 + 1".

问题1是我在正确的轨道上使用哪些令牌?

我的下一个问题是如何使用这些令牌来确保正确的语法?我想到的方法基本上是说,"好吧,我知道我有这个令牌,这里有一个基于当前令牌允许接下来的令牌列表.列表中的下一个令牌是什么?"

基于此,我列出了所有令牌以及令牌有效直接出现在它们之后(为简单起见,不包括空格).

ECHO        ->      STRING|MATH|DATE
STRING      ->      TERM|CONCAT
MATH        -> …
Run Code Online (Sandbox Code Playgroud)

c# compiler-construction scripting parsing

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

正则表达式,忽略模式,如果它在引号中

编写一个非常简单的脚本解析器作为学校项目的一部分,虽然它不是必需的但我很好奇是否可以只使用正则表达式来完成.

语法类似于ASP,其中脚本以<%开头,以%>结尾.

它只支持一个命令"pr",它与echo或Response.Write相同.

现在我正在使用这个正则表达式来查找脚本块:

(<%\s*([\s\S]*?)\s*%>)
Run Code Online (Sandbox Code Playgroud)

但如果我有这样的命令:

<% pr "%>"; %>
Run Code Online (Sandbox Code Playgroud)

......它显然只匹配:

<% pr "%>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用纯正则表达式来忽略引号内的结束标记?我主要担心的是它可能匹配引号之间的标签,但实际上它们在它们之外,如果这有意义的话.例如...

<% pr "hello world"; %> "
Run Code Online (Sandbox Code Playgroud)

从技术上讲,结束标记被引号包围,但它不在"开放"然后"关闭"引用内,而是相反.

如果这可能是正则表达式非常整洁,否则我怀疑,如果我想支持这个功能,我将不得不手动迭代传入的文本并自己解析块,这也没什么大不了的.

谢谢!

regex scripting parsing

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

在PHP中处理动态数量的表单字段的最佳方法?

我有一个系统,我需要列出一个任意数量的员工,其中包含一周中每天的文本字段,可以输入"小时工作"值.

所以我需要生成一个动态行数的表,每行将包含7个文本字段.我只是想知道在为这些字段分配ID时使用的最佳约定是什么,以便在我的后端收到输入数据后可以轻松迭代?

每行都有一个与代表员工ID的行相关联的ID号.

能够做到这样的事情真是太棒了:

foreach($rows as $row)
{
     $id = $row['id'];

     $employee = Employee::find($id);

     foreach($row['hoursWorked'] as $dailyHours)
     {
           $timecard = new Timecard();
           $timecard->hours = $dailyHours;
           $employee->timecards->insert($timecard);
     }
}
Run Code Online (Sandbox Code Playgroud)

在HTML方面构建表单和ID的最佳方法是什么,以使其尽可能轻松?

作为旁注,我正在Laravel 3框架内工作,以防其他任何解决方案开放.

html php forms laravel laravel-3

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

使用sscanf()忽略字符旁边的整数

很抱歉这个简单的问题,但我正试图找到一种优雅的方法来避免我的程序看到像"14asdf"这样的输入并接受它为14.

if (sscanf(sInput, "%d", &iAssignmentMarks[0]) != 0)
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以防止sscanf将整数从那些错误的字符串中拉出来?

c

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

在C#中使用接口作为"out"参数

如何在另一个接口的方法中将接口或抽象类用作"out"参数?我不应该在另一个接口中使用接口作为out参数,然后让它接受实际调用该方法时实现该接口的任何类吗?

我需要一个Transaction接口,它有一个返回bool并填充"Response"对象的方法,但该响应对象是Transaction接口的每个不同实现的不同派生对象.提前致谢.

namespace csharpsandbox
{
class Program
{
    static void Main(string[] args)
    {
        TransactionDerived t = new TransactionDerived();
        t.Execute();
    }
}


public interface ITransaction
{
    bool Validate(out IResponse theResponse);
}

public interface IResponse { }



public class ResponseDerived : IResponse
{
    public string message { get; set; }

}

public class TransactionDerived : ITransaction
{
    public bool Validate(out IResponse theResponse) {

        theResponse = new ResponseDerived();
        theResponse.message = "My message";
        return true;
    }

    public void Execute()
    {
        ResponseDerived myResponse = new …
Run Code Online (Sandbox Code Playgroud)

c# polymorphism abstract-class interface

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

shell 函数中的自动完成函数参数

有几个快速的 bash 函数可以让我访问我经常使用的文件夹:

function dp() {
    cd ~/Development/Personal/$1
}

function dw() {
    cd ~/Development/Work/$1
}
Run Code Online (Sandbox Code Playgroud)

例如,我可以输入 dp some-project直接进入个人项目。如果我可以对函数参数进行制表符补全,那么它会自动从我要导航到的目录中提取文件名,但我似乎无法弄清楚......

理想情况下,我可以只输入dp b{tab}并获取dp blog例如目录blog中的文件夹在哪里~/Development/Personal/

有人知道如何进行这项工作吗?如果有必要的话我会使用 ZSH!

bash shell zsh

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