Permalink
Cannot retrieve contributors at this time
description | title | ms.date | f1_keywords | helpviewer_keywords | ms.assetid |
---|---|---|---|---|---|
Compiler Error CS0119 |
Compiler Error CS0119 |
07/20/2015 |
CS0119 |
CS0119 |
048924f1-378f-4021-bd20-299d3218f810 |
Compiler Error CS0119
‘construct1_name’ is a ‘construct1’, which is not valid in the given context.
The compiler detected an unexpected construct such as the following:
-
A class constructor is not a valid test expression in a conditional statement.
-
A class name was used instead of an instance name to refer to an array element.
-
A method identifier is used as if it were a struct or class
Example
The following sample generates CS0119: ‘C.B()’ is a method, which is not valid in the given context. You can fix this error by changing the name of the method C.B
, or using the fully qualified name for the class B
like N2.B
.
namespace N2 { public static class B { public static void X() {} } } namespace N1 { public class C { void B() {} void M() => B.X(); // CS0119 } }
Сделал вращение,но оно почему-то выдаёт ошибку
Assets/Scripts/moving.cs(22,24): error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected
вот код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class moving : MonoBehaviour {
public GameObject obj;
private float speed = 5f,rotSpeed = 2f;
private Rigidbody2D rb;
private SpriteRenderer spr;
float rotation;
private void Awake(){
rb = GetComponent ();
spr = GetComponent ();
}
private void Run(){
rotation = rotSpeed * Input.GetAxis("Horizontal");
if (Input.GetAxis ("Horizontal") == 1f || Input.GetAxis("Horizontal") == -1f) {
rotation =+ rotSpeed;
}
transform.rotation = Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));
Vector3 direction = transform.up * Input.GetAxis ("Vertical");
transform.position = Vector3.MoveTowards (transform.position, transform.position + direction,speed * Time.deltaTime);
}
private void Update () {
Run ();
}
}
-
Вопрос заданболее трёх лет назад
-
1769 просмотров
А теперь по делу.
transform.rotation = Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));
Вы СОЗДАЕТЕ объект типа Quaternion , а при создании объектов используется new (выделение памяти и тд и тп).
тоесть должно бы быть
transform.rotation = new Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));
Если же все таки вы используете не новый созданный объект, а хотите просто метод над кватернионом , то было бы
Quaternion.НужныйМетод(параметры метода). а в вашем случае вы использовать пробуете конструктор объекта (параметры для него) без выделения как такового объета
Многовато повторений и так уже, но повторюсь — вам бы какой нибудь курс «Основы программирования» в обязательном порядке
Пригласить эксперта
-
Показать ещё
Загружается…
09 февр. 2023, в 11:42
7000 руб./за проект
09 февр. 2023, в 11:23
1500 руб./за проект
09 февр. 2023, в 10:11
1500 руб./в час
Минуточку внимания
Upon becoming familiar with C#, I’m getting the following error when unit testing on the line where an assertion is made Assert.IsInstanceTypeOf
.
Error CS0119 'Product' is a type, which is not valid in the given context
The matter of creating a type has been performed. What is causing this error to be raised?
UnitTest1.cs
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ProductNamespace;
namespace TestProject2
{
[TestClass]
public class TestProduct
{
[TestMethod]
public void TestNewProduct()
{
Product mock_product = new Product(4.95);
Assert.IsInstanceOfType(mock_product, Product);
}
}
}
Product.cs
namespace ProductNamespace
{
public class Product
{
private double price;
public Product(double price)
{
this.price = price;
}
}
}
asked Sep 2, 2021 at 5:57
3
It looks like you’re trying to use the IsInstanceOfType(object, Type)
method. To do that, you need to provide a Type
argument, but currently you’ve just specified the class name directly. That’s not a valid C# expression — you need to use the typeof
operator to obtain a Type
from the class name:
Assert.IsInstanceOfType(mock_product, typeof(Product));
Note that this really isn’t a useful test — you’re not testing anything about the code, you’re essentially asking whether .NET is behaving normally. If the code reaches that line (i.e. if the constructor doesn’t throw an exception) then it’s bound to pass — because the result of new Xyz
is always an Xyz
. (There’s a slight edge case around COM interfaces, but it’s not relevant here.)
answered Sep 2, 2021 at 5:59
Jon SkeetJon Skeet
1.4m851 gold badges9045 silver badges9133 bronze badges
Assert.IsInstanceOfType(mock_product, typeof(Product));
Please try the above. As per official documentation, the second parameter should be of Type
.
answered Sep 2, 2021 at 6:02
SRIDHARANSRIDHARAN
1,1331 gold badge15 silver badges34 bronze badges
0
Revin 0 / 0 / 0 Регистрация: 27.05.2018 Сообщений: 52 |
||||
1 |
||||
04.06.2019, 23:41. Показов 16475. Ответов 8 Метки нет (Все метки)
Здравствуйте, код:
Ошибка в название, документации не нашел, ну или она мне не попалась, потратил целый вечер, но увы, использовать как метод не дается
__________________
0 |
6269 / 3897 / 1567 Регистрация: 09.05.2015 Сообщений: 9,188 |
|
05.06.2019, 00:12 |
2 |
В какой строке ошибка хоть?
0 |
2496 / 1512 / 803 Регистрация: 23.02.2019 Сообщений: 3,689 |
|
05.06.2019, 00:15 |
3 |
Обычно ошибка указывает на конкретное место. Какая именно строка вызывает ошибку?
0 |
Revin 0 / 0 / 0 Регистрация: 27.05.2018 Сообщений: 52 |
||||
05.06.2019, 08:33 [ТС] |
4 |
|||
Ошибка пишется когда я пытаюсь использовать этот воид в другом. Т.е. я вставляю название со всеми аргументами:
И он выдает эту ошибку, я понимаю почему, но не знаю как правильно сделать.
0 |
2496 / 1512 / 803 Регистрация: 23.02.2019 Сообщений: 3,689 |
|
05.06.2019, 08:38 |
5 |
Почему бы не показать именно то, как
я пытаюсь использовать этот воид в другом. Скорее всего вы неверно передаёте/создаёте аргументы.
0 |
0 / 0 / 0 Регистрация: 27.05.2018 Сообщений: 52 |
|
05.06.2019, 18:59 [ТС] |
6 |
Возможно, можно узнать как правильно?
0 |
3396 / 2412 / 1161 Регистрация: 14.08.2016 Сообщений: 8,086 |
|
05.06.2019, 19:22 |
7 |
покажи тот кусок кода, где происходит ошибка
0 |
Revin 0 / 0 / 0 Регистрация: 27.05.2018 Сообщений: 52 |
||||||||
05.06.2019, 21:16 [ТС] |
8 |
|||||||
Здесь ошибка
ну и сам воид который я хочу заюзать
0 |
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,743 |
||||
05.06.2019, 21:25 |
9 |
|||
Сообщение было отмечено Revin как решение Решение
AutoUpdaterOnCheckForUpdateEvent(UpdateInfoEventAr gs); UpdateInfoEventArgs — это что?
1 |
#c# #unit-testing #mstest
Вопрос:
Ознакомившись с C#, я получаю следующую ошибку при модульном тестировании в строке, где делается утверждение Assert.IsInstanceTypeOf
.
Error CS0119 'Product' is a type, which is not valid in the given context
Вопрос о создании типа был выполнен. Что вызывает возникновение этой ошибки?
UnitTest1.cs
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ProductNamespace;
namespace TestProject2
{
[TestClass]
public class TestProduct
{
[TestMethod]
public void TestNewProduct()
{
Product mock_product = new Product(4.95);
Assert.IsInstanceOfType(mock_product, Product);
}
}
}
Product.cs
namespace ProductNamespace
{
public class Product
{
private double price;
public Product(double price)
{
this.price = price;
}
}
}
Комментарии:
1. Что вы подразумеваете под «Вопросом создания типа было выполнено»?
2. Я создал проект модульного тестирования с нуля. После настройки модульного теста Visual Studio отобразила запрос на создание нового типа. Я просто хотел сообщить, что сделал это.
3. Хорошо — похоже, вы думали, что это связано с ошибкой.
Ответ №1:
Похоже, вы пытаетесь использовать этот IsInstanceOfType(object, Type)
метод. Для этого вам нужно указать Type
аргумент, но в настоящее время вы только что указали имя класса напрямую. Это недопустимое выражение C# — вам нужно использовать typeof
оператор для получения a Type
из имени класса:
Assert.IsInstanceOfType(mock_product, typeof(Product));
Обратите внимание, что это действительно бесполезный тест — вы ничего не тестируете в коде, вы, по сути, спрашиваете, нормально ли ведет себя .NET. Если код достигает этой строки (т. Е. Если конструктор не создает исключения), то он обязательно пройдет — потому что результатом new Xyz
всегда является an Xyz
. (Есть небольшой крайний случай вокруг COM-интерфейсов, но здесь это не имеет значения.)
Ответ №2:
Assert.IsInstanceOfType(mock_product, typeof(Product));
Пожалуйста, попробуйте сделать это выше. Согласно официальной документации, второй параметр должен быть Type
.
Комментарии:
1. когда я начал писать ответ, первого ответа не существовало. Я понял это только после отправки ответа.
This is my code in the login click button as Sir suggested:
private void btnLogin_Click(object sender, EventArgs e) { AppDatabase1DataSet ds = new AppDatabase1DataSet (); AppDatabase1DataSet .LoginDataTable dt = new AppDatabase1DataSet.LoginDataTable (); AppDatabase1DataSet.LoginDataTable(); this.loginTableAdapter1 .Fill (dt) ; foreach (DataRow dr in dt .Rows ) { if(dr[0].ToString()==txtuname .Text && dr[1].ToString()== txtpassword.Text ) { txtpassword.Text = ""; txtpassword.Text = dr[0].ToString(); MessageBox.Show("Login Succeeded"); }
I’ve defined everythings accordingly but this error pops up on the LoginDataTable() line:
Error 1 ‘csharp_phonebk.AppDatabase1DataSet.LoginDataTable’ is a ‘type’, which is not valid in the given context
I don’t know why…Please answer me asap.
Updated 16-Jan-10 23:03pm
wrote:
AppDatabase1DataSet.LoginDataTable();
Here you are using LoginDataTable as a method. But since it is a class, you are getting the error.
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900