i tried a lot of links to the mentined error but i am not getting any solution.
Compiler Error Message: CS0023: Operator '.' cannot be applied to operand of type 'void'
Source Error:
Line 56: if (iscomplete == false)
Line 57: {
Line 58: var qryPartnerJobs = at.uspGetPartnerTrade(Convert.ToInt32(Session["user"]), assigned, servid, isapply).ToList();
Line 59: gvPartnerJob.DataSource = qryPartnerJobs;
Line 60: gvPartnerJob.DataBind();
Source File:
> Blockquote
alltradepartners.comwwwroottestpartnerjobs_view.aspx.cs Line: 58
Sp Code
ALTER PROC [dbo].[uspGetPartnerTrade] @UserID BIGINT, @IsAssigned BIT = NULL, @ServiceID INT = NULL, @IsPartnerApply BIT = NULL
AS
BEGIN
SET NOCOUNT ON
SET FMTONLY OFF
DECLARE @TradeList XML
CREATE TABLE #tblTradeList (Trade VARCHAR(255))
DECLARE @IsUserAdmin BIT = 0, @SQL NVARCHAR(MAX), @WhereClause NVARCHAR(MAX) = ''
DECLARE @ParmDefinition NVARCHAR(500)
SELECT @IsUserAdmin = 1 FROM users U INNER JOIN [role] R ON U.RoleID = R.RoleID
WHERE R.RoleName = 'admin' AND U.IsActive = 1 AND U.UserID = @UserID
SET @TradeList = (SELECT CAST('<A>'+ REPLACE([td].Trades,', ','</A><A>')+ '</A>' AS XML)
FROM tradesman_details [td] WHERE [td].UserID = @UserID)
INSERT INTO #tblTradeList (Trade)
SELECT t.value('.', 'VARCHAR(255)') AS inVal FROM @TradeList.nodes('/A') AS x(t)
IF @IsUserAdmin = 1
BEGIN
IF @IsAssigned IS NOT NULL
BEGIN
SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
END
SET @Sql = 'SELECT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName],
[t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1],
[t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
FROM [dbo].[jobs] AS [t0]
INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
WHERE
(((
SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND
(NOT ([t0].[IsComplete] = 1))
AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
AND [t3].ServiceName = [t3].ServiceName
AND [t1].PostCode = [t1].PostCode
AND [t0].IsActive = 1 AND [t0].IsApproved = 1'
SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT'
SET @Sql = @Sql + @WhereClause
EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID
END
ELSE
BEGIN
IF @IsAssigned IS NOT NULL
BEGIN
SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
END
IF @IsPartnerApply IS NOT NULL
BEGIN
SET @WhereClause = @WhereClause + ' AND [t6].[IsPartnerApply] = @IsPartnerApply '
END
SET @Sql = 'SELECT DISTINCT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName],
[t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1],
[t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
FROM [dbo].[jobs] AS [t0]
INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
LEFT OUTER JOIN [dbo].[job_quotes] AS [t6] ON [t0].[JobID] = [t6].[JobID]
INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
WHERE
(((
SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND
(NOT ([t0].[IsComplete] = 1))
AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
AND [t0].IsActive = 1 AND [t0].IsApproved = 1
AND [t3].ServiceName IN (SELECT Trade collate SQL_Latin1_General_CP1_CI_AS FROM #tblTradeList WHERE Trade <> '''')
AND [t1].PostCode IN (SELECT PostCode FROM users WHERE UserID = @UserID)'
SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT, @IsPartnerApply BIT, @UserID BIGINT'
SET @Sql = @Sql + @WhereClause
EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID, @IsPartnerApply = @IsPartnerApply, @UserID = @UserID
END
DROP TABLE #tblTradeList
END
- Remove From My Forums
-
Question
-
User-1136062158 posted
Hi! I am adding a page dynamically and I am getting this error it seems like it doesn’t like —
Response.Write(strHeader).ToString:Compiler Error Message: CS0023: Operator ‘.’ cannot be applied to operand of type ‘void’
Source Error:
Line 152: aspx.Append("<table align="center" class="style1"><tr><td class="style7" colspan="2" >"); Line 153: aspx.Append("rn"); Line 154: aspx.Append(Response.Write(strHeader).ToString); Line 155: aspx.Append("rn"); Line 156: aspx.Append("<br /></td></tr><tr><td class="style3" valign="top">");this is what i have on top of this code:
protected void SaveTheme()
{ code here…
Thank you for the help!
Answers
-
User-1136062158 posted
This is the solution: hope it helps somebody!
aspx.Append(«<%» +
«Response.Write» + «(«» + strHeader +
«»);» + «%>»);-
Marked as answer by
Thursday, October 7, 2021 12:00 AM
-
Marked as answer by
Когда я пытаюсь установить значение rb.AddForce (firePoint.forward.Set (newX, newY, newZ), я получаю следующую ошибку Оператор ‘*’ не может быть применен к операндам типа ‘void’ и ‘float’. Я действительно не уверен, что делать с этой проблемой. Ps: Это мой первый вопрос о переполнении стека, поэтому я извиняюсь, если я спросил почему-то неправильно, но да, это то, что есть.
// New Input System
Player inputActions;
// Bullet stuff
public Transform firePoint;
public GameObject bulletPrefab;
public float bulletForce = 20f;
// Flash stuff
public Transform flashPos;
public GameObject flashPrefab;
// New Bullet Rotation
private float newX = 90;
private float newY = 0;
private float newZ = 0;
private void Awake()
{
inputActions = new Player();
inputActions.Enable();
// You can define a function to handle the press
inputActions.PlayerMain.Shoot.performed += ctx => Fire();
// You can define a function to handle the press
// Inputs.Player.OtherAction.performed += FunctionThatRuns();
}
private void Fire()
{
//print("Boom!");
// For Bullet
AudioManager.instance.Play("Shoot");
GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
Rigidbody rb = bullet.GetComponent<Rigidbody>();
// Part when I getting error Operator '*' cannot be applied to operands of type 'void' and 'float'
rb.AddForce(firePoint.forward.Set(newX, newY, newZ) * bulletForce, ForceMode.Impulse);
// For Flash
GameObject flashEffect = Instantiate(flashPrefab, flashPos.transform.position, Quaternion.identity);
Destroy(flashEffect, 0.1f);
}
2 ответа
Лучший ответ
Как уже объяснялось достаточно часто, теперь Vector3.Set — это void, который ничего не возвращает -> вы не можете умножить его на float.
Вы хотите использовать только
firePoint.forward * bulletForce
Чтобы выстрелить в направлении вектора firePoint.forward.
Похоже, вы пытаетесь дополнительно повернуть пулю на 90 ° по локальной оси X перед выстрелом.
Вы хотите сделать это по-разному:
// Uses the bullets local space by default
bullet.transform.Rotate(90, 0, 0);
rb.AddForce(firePoint.forward * bulletForce, ForceMode.Impulse);
1
derHugo
9 Янв 2021 в 19:40
Поскольку сейчас кажется, что он не будет закрыт, и вы не можете следить за комментариями, я отвечаю на него здесь.
Ваша ошибка возникает в rb.AddForce(firePoint.forward.Set(newX, newY, newZ) * bulletForce, ForceMode.Impulse);, поэтому давайте разберем это выражение на несколько операторов. Это эквивалентно:
var setResult = firePoint.forward.Set(newX, newY, newZ); //1
var totalForce = setResult * bulletForce; //bulletForce is a "float"
rb.AddForce(totalForce, ForceMode.Impulse);
Проблема находится в //1. forward.Set не возвращает никакого значения, поэтому присвоение неверно. Вы пытаетесь умножить void (т. Е. «Без типа» или «без значения») на значение float. Это нарушает основные языковые правила.
Ошибка компилятора сообщает вам, что он (справедливо) не смог найти в кодовой базе оператора, который определяет, как умножить два значения типов void и float.
Итак, настоящий вопрос здесь в том, что вы ожидаете от forward.Set(), чтобы вернуть это значение, и как найти это значение, поскольку этот вызов метода не вернет вам ничего, что вы могли бы использовать .
Вот как должен выглядеть код (в развернутом виде):
firePoint.forward.Set(newX, newY, newZ);
Vector3 direction = /* ____ */;
Vector3 totalForce = direction * bulletForce;
rb.AddForce(totalForce, ForceMode.Impulse);
А теперь скажите мне, что происходит в /* ____ */. Я подозреваю, что это firePoint.forward, но только вы можете это подтвердить.
-1
Harshdeep Singh
9 Янв 2021 в 19:29
Я перепробовал много ссылок на упомянутую ошибку, но не нашел решения.
Compiler Error Message: CS0023: Operator '.' cannot be applied to operand of type 'void'
Source Error:
Line 56: if (iscomplete == false)
Line 57: {
Line 58: var qryPartnerJobs = at.uspGetPartnerTrade(Convert.ToInt32(Session["user"]), assigned, servid, isapply).ToList();
Line 59: gvPartnerJob.DataSource = qryPartnerJobs;
Line 60: gvPartnerJob.DataBind();
Source File:
> Blockquote
alltradepartners.comwwwroottestpartnerjobs_view.aspx.cs Line: 58
Сп-код
ALTER PROC [dbo].[uspGetPartnerTrade] @UserID BIGINT, @IsAssigned BIT = NULL, @ServiceID INT = NULL, @IsPartnerApply BIT = NULL
AS
BEGIN
SET NOCOUNT ON
SET FMTONLY OFF
DECLARE @TradeList XML
CREATE TABLE #tblTradeList (Trade VARCHAR(255))
DECLARE @IsUserAdmin BIT = 0, @SQL NVARCHAR(MAX), @WhereClause NVARCHAR(MAX) = ''
DECLARE @ParmDefinition NVARCHAR(500)
SELECT @IsUserAdmin = 1 FROM users U INNER JOIN [role] R ON U.RoleID = R.RoleID
WHERE R.RoleName = 'admin' AND U.IsActive = 1 AND U.UserID = @UserID
SET @TradeList = (SELECT CAST('<A>'+ REPLACE([td].Trades,', ','</A><A>')+ '</A>' AS XML)
FROM tradesman_details [td] WHERE [td].UserID = @UserID)
INSERT INTO #tblTradeList (Trade)
SELECT t.value('.', 'VARCHAR(255)') AS inVal FROM @TradeList.nodes('/A') AS x(t)
IF @IsUserAdmin = 1
BEGIN
IF @IsAssigned IS NOT NULL
BEGIN
SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
END
SET @Sql = 'SELECT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName],
[t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1],
[t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
FROM [dbo].[jobs] AS [t0]
INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
WHERE
(((
SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND
(NOT ([t0].[IsComplete] = 1))
AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
AND [t3].ServiceName = [t3].ServiceName
AND [t1].PostCode = [t1].PostCode
AND [t0].IsActive = 1 AND [t0].IsApproved = 1'
SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT'
SET @Sql = @Sql + @WhereClause
EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID
END
ELSE
BEGIN
IF @IsAssigned IS NOT NULL
BEGIN
SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
END
IF @IsPartnerApply IS NOT NULL
BEGIN
SET @WhereClause = @WhereClause + ' AND [t6].[IsPartnerApply] = @IsPartnerApply '
END
SET @Sql = 'SELECT DISTINCT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName],
[t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1],
[t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
FROM [dbo].[jobs] AS [t0]
INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
LEFT OUTER JOIN [dbo].[job_quotes] AS [t6] ON [t0].[JobID] = [t6].[JobID]
INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
WHERE
(((
SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND
(NOT ([t0].[IsComplete] = 1))
AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
AND [t0].IsActive = 1 AND [t0].IsApproved = 1
AND [t3].ServiceName IN (SELECT Trade collate SQL_Latin1_General_CP1_CI_AS FROM #tblTradeList WHERE Trade <> '''')
AND [t1].PostCode IN (SELECT PostCode FROM users WHERE UserID = @UserID)'
SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT, @IsPartnerApply BIT, @UserID BIGINT'
SET @Sql = @Sql + @WhereClause
EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID, @IsPartnerApply = @IsPartnerApply, @UserID = @UserID
END
DROP TABLE #tblTradeList
END
