ASP.Net @ Symbol - PullRequest
       17

ASP.Net @ Symbol

8 голосов
/ 15 декабря 2009

Я пытаюсь следовать некоторым учебникам для ASP.Net, и я просто не могу понять, что делает символ @, когда он находится перед переменной.

Я думал, что это просто ярлык для переменных сеанса или request.form, но я попробовал это в нескольких местах без какой-либо удачи.

Когда я вставляю это куда-то случайно, я получаю ошибку: Expression Expected, однако, когда я смотрю на примеры, из которых я работаю, они не выглядят как выражения, поэтому я очень растерялся!

Пожалуйста, помогите!?

Ответы [ 3 ]

8 голосов
/ 15 декабря 2009

Символ @ в C # позволяет использовать ключевое слово в качестве имени переменной.

Например:

//this will throw an exception, in C# class is a keyword
string class = "CSS class name"; 

//this won't
string @class = "CSS class name"; 

Обычно лучше избегать использования ключевых слов в качестве имен переменных, но иногда это более элегантно, чем иметь неудобные имена переменных. Вы склонны чаще всего их видеть при сериализации материалов для Интернета и в разных типах.

Возможно, ваша ошибка связана с применением @ перед именем переменной, которая не является ключевым словом.

Обновление:

В T-SQL @ всегда используется перед именами параметров, например:

select * 
from [mytable]
where [mytable].[recId] = @id

Затем вы указали бы параметр @id при вызове запроса.

7 голосов
/ 15 декабря 2009

Существует несколько различных вариантов использования символа @ в зависимости от того, где он находится.

Перед именем переменной позволяет использовать зарезервированное слово в качестве имени переменной:

string @string = "a string variable named string";

Это не очень хорошая практика, поскольку при чтении кода это может сбить с толку.

Перед строкой он называется дословным строковым литералом и означает, что вам не нужно экранировать косую черту и такие:

string path = @"c:\my path\is here";
string normal_path = "c:\\my path\\is here";
5 голосов
/ 15 декабря 2009

На странице ASPX символ @ используется вместе с директивами страницы.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

На кодовой странице символ @ используется для строковых значений, экранирующих символы.

String s = @"c:/Document/Files/Sample.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...