在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) 我知道使用原生iPhone应用程序,您可以使用UIKeyboardTypeDecimalPad强制使用带小数的数字小键盘.有没有办法在移动网页或Web应用程序上为输入字段强制使用相同的键盘?如果还没有,有人知道这个检测是否会添加到iOS 6中的Safari?
我可以毫无问题地显示常规数字键盘,但我真的想要小数点键,所以我不需要显示全键盘.
谢谢!
只是想知道如何检查PHP会话是否存在...我的理解是,无论如何,如果我正在使用会话,我必须使用session_start()启动我的文件甚至访问会话,即使我知道它已经存在.
我已经读过用户session_id()来查明会话是否存在,但是因为我必须在调用session_id()之前使用session_start(),而session_start()如果没有会话就会创建一个新ID,如何我可以检查会话是否存在吗?
在使用版本3进行一些项目之后,第一次玩Laravel 4,但似乎无法让Artisan工作.我已经做了很多搜索,并按照我能找到的故障排除步骤但没有运气.
当我尝试"作曲家更新"时,我收到此错误:
Script php artisan optimize handling the post-update-cmd event returned with an error:
Run Code Online (Sandbox Code Playgroud)
......没有额外的信息.
试图运行"php artisan list"或任何其他工匠命令只是让我没有输出.
有任何想法吗?
我正在编写一个非常基本的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) 编写一个非常简单的脚本解析器作为学校项目的一部分,虽然它不是必需的但我很好奇是否可以只使用正则表达式来完成.
语法类似于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)
从技术上讲,结束标记被引号包围,但它不在"开放"然后"关闭"引用内,而是相反.
如果这可能是正则表达式非常整洁,否则我怀疑,如果我想支持这个功能,我将不得不手动迭代传入的文本并自己解析块,这也没什么大不了的.
谢谢!
我有一个系统,我需要列出一个任意数量的员工,其中包含一周中每天的文本字段,可以输入"小时工作"值.
所以我需要生成一个动态行数的表,每行将包含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框架内工作,以防其他任何解决方案开放.
很抱歉这个简单的问题,但我正试图找到一种优雅的方法来避免我的程序看到像"14asdf"这样的输入并接受它为14.
if (sscanf(sInput, "%d", &iAssignmentMarks[0]) != 0)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以防止sscanf将整数从那些错误的字符串中拉出来?
如何在另一个接口的方法中将接口或抽象类用作"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) 有几个快速的 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!